我希望在1到100之间得到20个随机数,但这个数字不应重复....
更新 如果我有20个名字,其中任意5个随机逐个选择,但名称来一次不再被调用.....
答案 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)