相关疑难解决方法(0)

如何从范围中获取随机数,不包括某些值

在C#中,如何从一系列值中获取一个随机数 - 如1..100,但该数字不应该在某些特定的值列表中,如5,7,17​​,23?

c# random

19
推荐指数
2
解决办法
3万
查看次数

C#:从IEnumerable获取随机值的优雅代码

在Python中,我可以这样做:

>>> import random
>>> ints = [1,2,3]
>>> random.choice(ints)
3
Run Code Online (Sandbox Code Playgroud)

在C#中,我做的第一件事是:

var randgen = new Random();
var ints = new int[] { 1, 2, 3 };
ints[randgen.Next(ints.Length)];
Run Code Online (Sandbox Code Playgroud)

但这需要索引,也需要复制ints困扰我.所以,我想出了这个:

var randgen = new Random();
var ints = new int[] { 1, 2, 3 };
ints.OrderBy(x=> randgen.Next()).First();
Run Code Online (Sandbox Code Playgroud)

仍然不是很好,很有效率.是否有更优雅的方式从IEnumberable获取随机值?

c#

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

random ×1