是否可以从 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()
用于对最近选择的号码进行操作。