随机选择一些数字c#

时间:2011-10-02 02:57:29

标签: c#

假设我们有这个数字51,53,58,60,78。如果已经选择/选择了一个数字,我们如何以这种方式随机选择一个数字,在下次运行中不会被选中。

此外,在选择所有数字后,所有数据都会重新启动,并且该过程会自行重复。

2 个答案:

答案 0 :(得分:16)

将数字放入数组中,然后对数组执行Knuth Shuffle。然后数组的内容是随机顺序,如果你遍历它,你将不会重复。

小心;很容易让洗牌错误。

答案 1 :(得分:1)

将整数加载到数组中。创建Random类的实例。调用Random.Next(int minValue, int maxValue)方法,0为minValue,数组减去1为maxValue。然后使用该随机整数来引用整数数组。

Random rnd = new Random();
int nextArrayIndex;
int[] randomNumbers = new int[] {51, 53, 58, 60, 78};

nextArrayIndex = rnd.Next(0, randomNumbers.Count() - 1);

Console.Writeline("Random Value: {0}", randomNumbers[nextArrayIndex].ToString());

编辑:对于非重复数据,只需将已使用整数数组的索引存储在单独的列表中,在使用随机数之前,请检查列表以查看它是否已被使用。如果是,则重新运行随机数代码。如果已满,则不要让它继续无限循环。