【发布时间】:2021-11-13 14:26:42
【问题描述】:
我创建了一个 1-49 之间的 36 个随机数组成的数组。我在 for 循环中嵌套了一个 do-while 循环,该循环将数字插入数组以删除任何重复的数字。运行代码进行测试时出现异常 "System.IndexOutOfRangeException: '索引超出了数组的范围。'"
{
Random rand = new Random();
int[] Numbers = new int[36];
for (int r = 0; r <= 36; r++)
{
int nextValue;
do
{
nextValue = rand.Next(1, 50);
} while (Numbers.Contains(nextValue));
Numbers[r] = nextValue;
}
return Numbers;
}
Numbers[r] = nextValue; 导致异常。
有人知道我哪里出错了吗?
【问题讨论】:
-
可能是因为您为 Number 分配了 36 个值,但 r 上升到了 49。
-
r上升到 49,但您的阵列只上升到 36。 -
我已经改变了这个并更新了值但是它仍然抛出异常
-
有一种更简单的方法可以排除重复项……而且只有一行
-
试试这个 => for (int r = 0; r
标签: c# arrays loops for-loop do-while