不重复的随机数生成器

zuk*_*hes 1 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;
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

Ser*_*giu 5

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