Telegram API Пост с несколькими картинками

Вот таким способом отправляю пост и все работает отлично:

 public static async void bw_DoWork1()
    {

        botClient = new TelegramBotClient("APIKEY");
        Message[] messages = await botClient.SendMediaGroupAsync(
                       chatId: "@11",
                       inputMedia: new[]
                       {
                         new InputMediaPhoto("https://github.com/TelegramBots/book/raw/master/src/docs/photo-ara.jpg"),
                         new InputMediaPhoto("https://github.com/TelegramBots/book/raw/master/src/docs/photo-ara.jpg"),
                         new InputMediaPhoto("https://github.com/TelegramBots/book/raw/master/src/docs/photo-ara.jpg"),
                         new InputMediaPhoto(new InputMedia("https://github.com/TelegramBots/book/raw/master/src/docs/photo-ara.jpg"))
                         {
                          Caption = "Bot"
                         },

                       }
                   );

    }

Пробую inputMedia передать List: public List Photo = new List();

  public async void bw_DoWork1(Post post)
    {
            botClient = new TelegramBotClient("APIKEY");
            Message[] messages = await botClient.SendMediaGroupAsync(
                           chatId: "@11",
                           inputMedia: (IEnumerable<IAlbumInputMedia>)post.Photo

                       );
    }

Получаю исключение: System.InvalidCastException: "Не удалось привести тип объекта "System.Collections.Generic.List1[System.String]" к типу "System.Collections.Generic.IEnumerable1[Telegram.Bot.Types.IAlbumInputMedia]"."

Пробовал делать public List<IAlbumInputMedia> Photo = new List<IAlbumInputMedia>(); Но тогда не выходит записать в List строку с ссылкой.


Ответы (1 шт):

Автор решения: aepot

У вас List<string> в исключении, а должен быть List<IAlbumInputMedia>.

Попробуйте так для List<string>

inputMedia: post.Photo.Select(x => new InputMediaPhoto(x))
→ Ссылка