是否可以从c#中的数字选择中创建一个随机数.
例如,我有一个1-90的数字数组,一旦数字被称为该数字的变化.因此,我只想生成该属性未更改的数字.因此,这将仅随机调用1到90之间的数字.
我使用循环完成了这个,但只是想要一个quiker和更干净的方法.
我目前的代码是:
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;
}
Run Code Online (Sandbox Code Playgroud)
在您执行的迭代次数越多,找到未使用的值将变得越来越"难",因为最终找到已使用的值的概率将接近100%.还有其他选择.其中一种可能性是在尝试提取任何数字之前对源数组进行随机排序,然后按顺序将它们剥离.