这会产生随机抽奖

How*_*ish 1 c#

我已经接管了一些奖品绘图代码.

我可以看到这个人正在使用一个随机数来命令它们,但这实际上是随机的,因为我看不到他做过的任何地方oRand.Next(); 默认的Random是否生成实际的随机数.

  Random oRand = new Random();


    var res = (from l in listNew.AsQueryable<Participant>() //entities.Participant
              where l.Status != 0                 
              select l).AsEnumerable().OrderBy(p=>oRand);
Run Code Online (Sandbox Code Playgroud)

Mat*_*ell 6

默认的Random是否生成实际的随机数.

在示例代码中,您按"RandomNumberMaker"排序(即所有值的值相同),而不是随机数.

通过比较LINQPad中的代码(按自然顺序产生数字1到1000)可以快速测试这一点.

void Main()
{
 Random oRand = new Random(); 
 var res = Enumerable.Range(1, 1000).OrderBy(p=>oRand); 
 res.Dump();
}
Run Code Online (Sandbox Code Playgroud)

使用此代码(以伪随机顺序对数字1到1000进行排序):

void Main()
{
 Random oRand = new Random(); 
 var res =Enumerable.Range(1, 1000).OrderBy(p=>oRand.Next()); 
 res.Dump();
}
Run Code Online (Sandbox Code Playgroud)

有关随机.NET随机内容的介绍,请查看这篇文章,其中有一个优点是从这个伟大的漫画开始:

替代文字http://www.csharpcity.com/wp-content/uploads/2010/05/Dilbert0001.jpg