gpt4 book ai didi

c# - 如何从 C# 中的列表或 var 中获取随机数量的详细信息

转载 作者:行者123 更新时间:2023-11-30 20:20:32 24 4
gpt4 key购买 nike

我正在从本地项目中的一个 json 文件读取结果。它返回超过 4000 个结果。我只想从该结果中获得随机数量的结果(500-1000 之间)。

 var finalResultz = finalResults("All","All","All");//step one

在这里它返回了 4000 多个结果。然后我将其放入这样的列表中。

List<Results> searchOne = new List<Results>();//step two
foreach(var itms in finalResultz)
{
searchOne.Add(new Results
{
resultDestination = returnRegionName(itms.areaDestination),
mainImageurl = itms.testingImageUrl
});
}

ViewBag.requested = searchOne;

但我只想得到我说的结果。我想在第一步或第二步中调整计数的大小。我该怎么做。希望得到你的帮助。

最佳答案

如果你想要一个随机数的结果,你可以只.Take()一个随机数的记录。首先,您需要一个 Random:

var random = new Random();

如果您想要 500-1000 之间,只需获取该范围内的随机值:

var count = random.Next(500, 1001);

然后你可以从集合中取出那些记录:

var newList = oldList.Take(count).ToList();

(当然,您可能希望首先确保它包含那么多记录。)

请注意,这将从集合中获取 N 条记录。因此,为了从集合中的任何地方获取随机记录,您需要在获取记录之前对集合进行洗牌(随机化)。有多种方法可以做到这一点。一种可能不是绝对最快但通常“足够快”以简单起见的方法是仅按 GUID 排序。所以像这样:

var newList = oldList.OrderBy(x => Guid.NewGuid()).Take(count).ToList();

或者再次使用随机发生器:

var newList = oldList.OrderBy(x => random.Next()).Take(count).ToList();

关于c# - 如何从 C# 中的列表或 var 中获取随机数量的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36261933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com