相关疑难解决方法(0)

从C#中的List <T>中选择N个随机元素

我需要一个快速算法从通用列表中选择5个随机元素.例如,我想从a获得5个随机元素List<string>.

c# random algorithm collections element

145
推荐指数
14
解决办法
11万
查看次数

从Linq到Sql的随机行

当我有条件时,使用Linq to SQL检索随机行的最佳(和最快)方法是什么,例如某些字段必须为true?

.net c# linq-to-sql

110
推荐指数
5
解决办法
6万
查看次数

在C#2.0中生成随机枚举

有人可以请我指向一个更简洁的方法来生成随机枚举成员.这有效,但看起来很难看.

谢谢!

public T RandomEnum<T>()
{
  string[] items = Enum.GetNames(typeof( T ));
  Random r = new Random();
  string e = items[r.Next(0, items.Length - 1)];
  return (T)Enum.Parse(typeof (T), e, true);
}
Run Code Online (Sandbox Code Playgroud)

c# enums

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

从范围中选择但不包括某些数字

是否可以从给定范围(1-90)中选择一个随机数,但不包括某些数字.排除的数字是动态创建的,但可以说它们分别为3,8和80.

我已设法创建随机数生成器,但无法识别任何让我满足我的要求的功能.

Random r = new Random();
this.num = r.Next(1, 90);
Run Code Online (Sandbox Code Playgroud)

要排除的数字是先前生成的数字.因此,如果随机数为1,则会将其添加到排除的数字列表中.

c# random wpf numbers range

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

得到一个随机数,只要它不在列表中

 var list = new List<int>(){1,17,18,21,30};
 Random rnd = new Random(DateTime.Now.Second);
 int r;
 do
 {
     r = rnd.Next(1, 30);
 }
 while (list.Contains(r));
Run Code Online (Sandbox Code Playgroud)

但我认为这是一个愚蠢的解决方案,任何人都可以给我一个更优化的方法吗?

如果有一种方法可以阻止Random实例返回已经返回的数字,那就更好了.

如果有人想知道我为什么需要这个,它是改组3字节数组并将它们组合成一个字节数组并生成3字节数组的第一步,它保存索引原始顺序,就像它在原始数组中一样.

c# random

3
推荐指数
1
解决办法
162
查看次数

标签 统计

c# ×5

random ×3

.net ×1

algorithm ×1

collections ×1

element ×1

enums ×1

linq-to-sql ×1

numbers ×1

range ×1

wpf ×1