如何获得随机数

时间:2010-11-19 15:36:15

标签: c# .net random

我希望在1到100之间得到20个随机数,但这个数字不应重复....

更新 如果我有20个名字,其中任意5个随机逐个选择,但名称来一次不再被调用.....

2 个答案:

答案 0 :(得分:7)

将数字放入列表中,然后从列表中选择:

List<int> numbers = Enumerable.Range(1, 100).ToList();

Random rnd = new Random();
List<int> picks = Enumerable.Range(1, 20).Select(n => {
  int index = rnd.Next(numbers.Count);
  int pick = numbers[index];
  numbers.RemoveAt(index);
  return pick;
});

这可能是解决它的最简单方法,但它并不是最有效的方法。删除列表中的项目涉及移动以下项目。使用更多的代码可以避免这种移动,但是对于大多数用途来说代码已经足够好了。

答案 1 :(得分:5)

我大约一年前问过这个问题。

Unique Random Numbers

选择的答案非常棒,我想。