如您所知,“for”可以在循环时生成有序数。我想制作一个循环,但使用无序数字。作为我需要的示例,请参阅:
for (int i = 0; i < 15; i++)
{
// Do something with "i"...
}
这将按顺序从 0 到 14 重复和计数,但假设我希望它在 0 到 14 之间重复和随机计数,如下所示:
13, 2, 7, 0, 14, 4, 6, 1, 8, 3, 5, 15, 9, 10, 12, 11
我该怎么做?
最佳答案
生成连续数字的集合,然后对它们进行打乱。以下使用 OrderBy
来执行此操作:
Random r = new Random();
foreach(int i in Enumerable.Range(0, 15).OrderBy(_ => r.Next()))
{
// Do something with "i"...
}
正如 @grek40 评论的那样,有比 OrderBy
更好的方法来进行洗牌,但想法是相同的:
关于c# - 在 C# 中以无序序列重复和计数循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46847571/