【发布时间】:2023-03-08 11:45:01
【问题描述】:
我正在尝试使用随机数创建一个数组列表。但有时我的结果为零。我不明白为什么。
如果有人能解释一下,我很感激。
int[] number = new int[6];
Random rnd = new Random();
for (int i = 0; i < number.Length; i++)
{
int random = rnd.Next(1, 26);
if (!number.Contains(random))
{
number[i] = random;
}
}
foreach (int nr in number)
{
Console.Write("|" + nr + "|");
}
//results
|6||12||0||22||25||11|
【问题讨论】:
-
取出
if (!number.Contains(random)),你会看到0是如何到达那里的。 提示 - 如果两次生成相同的随机数。 -
这里更好的解决方案是使用
HashSet<int>而不是数组。循环调用Add,直到Count== 6。然后调用ToArray。将自动满足重复项。 -
在 else 语句中添加 'i--',在重复的情况下重新生成值