我想在列表中保存随机数,相同的数字不能两次。 这是一个BINGO游戏,此方法用于显示前B12,然后用户点击进入并显示一个新数字。这将一直持续到用户写q。
这样可行,但数字可以显示两次......
static void bingo()
{
Random rnd =new Random();
List<int> check = new List<int>();
string choice = "";
while (choice != "Q")
{
int number = rnd.Next(1, 76);
while (!check.Contains(number))
{
kontroll.Add(number);
}
if (number <=15)
{
choice = Interaction.InputBox("B" + number);
choice = choice.ToUpper();
}
else if(number <= 30)
etc.
答案 0 :(得分:2)
这样的事情应该有用(如果我正确地阅读你的问题)
Enumerable.Range(1,76).OrderBy(n =&gt; rnd.NextDouble())
答案 1 :(得分:0)
有几种方法可以做到这一点:
答案 2 :(得分:-1)
实现此目的的最简单方法是使用HashSet
。
var usedNumbers = new HashSet<int>();
...
int number;
do {
number = rnd.Next(1, 76);
} while (usedNumbers.Contains(number));
usedNumbers.Add(number);