【发布时间】:2019-04-23 18:41:00
【问题描述】:
public static List<int> GetRandom()
{
Random rnd = new Random();
List<int> list = new List<int>();
while (list.Count <= 26)
{
int randomNumber = rnd.Next(1, 26);
if (!list.Contains(randomNumber))
{
list.Add(randomNumber);
}
}
return list;
}
这是一个代码,我试图获取一个随机整数列表(从 1 到 26),但这并没有返回我想要的结果。这里我想要一个没有任何重复的随机 int 数组。
【问题讨论】:
-
您的
rnd应该为应用程序的运行创建一次,而不是在每次调用该方法时创建。 -
您不希望它们只是随机的。您也希望它们独一无二。
-
@TheodorZoulias - 是的,先生,我已经得到了答案
-
@Nishan 你有答案,但你的方法有点低效。因为每次迭代你将有更高的概率生成一个已经存在的数字,所以你的概率将从 1/n、2/n...n-1/n... 你会浪费一些时间循环直到你真正生成唯一编号...
标签: c#