RSM*_*RSM 10 c# random wpf numbers range
是否可以从给定范围(1-90)中选择一个随机数,但不包括某些数字.排除的数字是动态创建的,但可以说它们分别为3,8和80.
我已设法创建随机数生成器,但无法识别任何让我满足我的要求的功能.
Random r = new Random();
this.num = r.Next(1, 90);
Run Code Online (Sandbox Code Playgroud)
要排除的数字是先前生成的数字.因此,如果随机数为1,则会将其添加到排除的数字列表中.
在这里使用一些方便的扩展方法,您可以创建一系列数字并从该愤怒中随机选择.例如,使用这些扩展方法:
public static T RandomElement(this IEnumerable<T> enumerable)
{
return enumerable.RandomElementUsing(new Random());
}
public static T RandomElementUsing(this IEnumerable<T> enumerable, Random rand)
{
int index = rand.Next(0, enumerable.Count());
return enumerable.ElementAt(index);
}
Run Code Online (Sandbox Code Playgroud)
您可以将这些应用于过滤的数字范围:
var random = Enumerable.Range(1, 90).Except(arrayOfRemovedNumbers).RandomElement();
Run Code Online (Sandbox Code Playgroud)
创建一个容纳您不想要的数字的容器:
var excludedNumbers = new List<int> { 1, 15, 35, 89 };
Run Code Online (Sandbox Code Playgroud)
然后使用类似的东西:
Random random = new Random();
int number;
do
{
number = r.Next(1, 90);
} while (excludedNumbers.Contains(number));
// number is not in the excluded list now
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11498 次 |
| 最近记录: |