C#。我如何获取随机ID,然后获取largeImgURL

时间:2020-02-01 05:46:17

标签: c# json discord

我尝试了很多事情,但是我的大脑现在无法正常工作,我也不知道该怎么办。我已经搜索了互联网,但没有找到任何可以帮助我的东西。

如果您想要JSON API链接,则尝试使用Hits.ID获取随机搜索结果并从Hit中获取大图片网址,以便更好地了解我的工作。

搜索命令

[Command("search")]
        public async Task Search(CommandContext ctx, string args)
        {
            WebClient n = new WebClient();

            var json = n.DownloadString("https://pixabay.com/api/?key=###################&q=" + args + "&image_type=photo&pretty=true");
            var root = JsonConvert.DeserializeObject<Root>(json);

            var builder = new DiscordEmbedBuilder
            {
                Color = DiscordColor.Rose,
                Description = "Search Result",
            };

            foreach (Hit hit in root.hits)
            {
                builder.WithImageUrl(hit.largeImageURL);
            }
            await ctx.RespondAsync(embed: builder.Build());
        }

获取设置

        public class Hit
        {
            public string largeImageURL { get; set; }
            public int webformatHeight { get; set; }
            public int webformatWidth { get; set; }
            public int likes { get; set; }
            public int imageWidth { get; set; }
            public int id { get; set; }
            public int user_id { get; set; }
            public int views { get; set; }
            public int comments { get; set; }
            public string pageURL { get; set; }
            public int imageHeight { get; set; }
            public string webformatURL { get; set; }
            public string type { get; set; }
            public int previewHeight { get; set; }
            public string tags { get; set; }
            public int downloads { get; set; }
            public string user { get; set; }
            public int favorites { get; set; }
            public int imageSize { get; set; }
            public int previewWidth { get; set; }
            public string userImageURL { get; set; }
            public string previewURL { get; set; }
        }

        public class Root
        {
            public int totalHits { get; set; }
            public List<Hit> hits { get; set; }
            public int total { get; set; }
        }

1 个答案:

答案 0 :(得分:1)

要从“命中列表”中随机获取一个命中,可以使用Linq来获得这样的结果。

Hit randomHit = root.hits.ElementAt(new Random().Next(x.Count));
var randomUrl = randomHit.largeImageURL;

ElementAt为您提供特定索引处的元素。使用介于0和该列表中的命中总数之间的随机数,您可以获得一个随机命中。一旦有了它,就可以获取该对象的userImageUrl。