c# - 在 C# 中以无序序列重复和计数循环

标签 c# loops random sequence unordered

如您所知,“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/

相关文章:

python - 随机抽取 2 个数字,相差最小为 5

c++ - 我如何仅使用 if else 语句(没有 for、do/while 等)使这段代码循环一定次数? (c++)

c# - 用于映射的 Automapper 与 Dapper

c# - 从临时文件夹中删除 RAR 文件?

html - 使用 css 创建无限循环

java - 打印正整数和最大正整数之间的倍数

c# - 在 .NET 中整理 HTML 的解决方案

c# - LINQ group by 查询使用反射(reflect)的属性名称

python - 如何迭代数据帧行,以更Pythonic的方式替换匹配元组中的值?

java - 如何使数组的前半部分是从 0 到 7 的随机整数,后半部分是数组前半部分的随机成员,但只能选择一次