是否可以从 C# 中的一组数字中创建一个随机数。

例如,我有一个从 1 到 90 的数字数组,一旦一个数字被称为该数字的属性就会发生变化。因此,我只想生成该属性未更改的数字。
因此,这只会随机调用 1 到 90 之间的数字。

我已经使用循环完成了此操作,但如果可能的话,我只是想要一种更快更清洁的方法。

我目前的代码是:

    public object GenerateNumber()
    {
        bool alreadyCalled = false;
        while (!alreadyCalled)
        {
           Random randomNumber = new Random(System.DateTime.Now.Millisecond);
            int RandomNumberCalled = randomNumber.Next(1, 91);


            if (Numbers.ToList().Find(x => x.Number == RandomNumberCalled).IsCalled != null)
            {

             // change number to is called and do other things.

            }
        }
        return false;
    }

最佳答案

list<int> myNumbers=GetNumbers();
Random r=new Random();
while (myNumbers.Count()>0)
{
  int index=r.Next(myNumbers.Count());
  ReportSelectedNumber(myNumbers[index]);
  myNumbers.RemoveAt(index);
}

确保您有 GetNumbers() 将返回您希望从中选择号码的列表,以及 ReportSelectedNumber() 用于对最近选择的号码进行操作。

10-08 16:05