将数字放在列表中,然后从列表中选择:
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;
});
Run Code Online (Sandbox Code Playgroud)
这可能是解决它的最简单方法,但它并不是最有效的方法.删除列表中的项目涉及移动以下项目.使用更多的代码可以避免这种移动,但是对于大多数用途来说代码已经足够好了.