不重复自身的随机数生成器

时间:2019-05-25 17:37:31

标签: c#

我正在尝试创建一个介于1到500之间且不会重复的随机数生成器。我制作了一个数组来跟踪是否使用了生成的数字,但是它似乎不起作用

if (drawnTF[num] == false)
            {
                labels[labelNum].Visible = false;
                txtLatestDrawnNum.Text = "Latest Drawn Number: " + latestDrawnNum.ToString("000");
                drawnTF[num] = true;
            }
            else
            {
                while (drawnTF[num] == true)
                {
                    num = random.Next(0, 499);
                    if (drawnTF[num] == false)
                    {
                        labelNum = 499 - num;
                        labels[labelNum].Visible = false;
                        txtLatestDrawnNum.Text = "Latest Drawn Number: " + latestDrawnNum.ToString("000");
                        drawnTF[num] = true;
                    }
                }
            }

1 个答案:

答案 0 :(得分:4)

您可以尝试将500个数字放入列表中,然后执行next(0,values.Length)。每次您选择一个随机数,都会将其从该列表中删除。这样,您将始终拥有不同的号码。