从数组中删除重复项时出现超出范围异常
Out of Range exception when removing duplicates from Array
我创建了一个由 36 个 1-49 之间的随机数组成的数组。我在 for 循环内嵌套了一个 do-while 循环,它将数字插入数组以删除任何重复的数字。当 运行 要测试的代码出现异常时
"System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'"
{
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; 导致异常。
有谁知道我错在哪里?
你用 36 个空格初始化你的数字数组
Numbers = new int[36];
但是在你的循环中,你分配给数字的位置最多为 49
for (int r = 0; r <= 49; r++)
.....
Numbers[r] = nextValue;
你的循环最大值应该改为36,它与你要求的随机生成的最大值无关
我创建了一个由 36 个 1-49 之间的随机数组成的数组。我在 for 循环内嵌套了一个 do-while 循环,它将数字插入数组以删除任何重复的数字。当 运行 要测试的代码出现异常时 "System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'"
{
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; 导致异常。
有谁知道我错在哪里?
你用 36 个空格初始化你的数字数组
Numbers = new int[36];
但是在你的循环中,你分配给数字的位置最多为 49
for (int r = 0; r <= 49; r++)
.....
Numbers[r] = nextValue;
你的循环最大值应该改为36,它与你要求的随机生成的最大值无关