Linq to sql 使用Linq选择N个随机记录

Linq to sql 使用Linq选择N个随机记录,linq-to-sql,Linq To Sql,我有一个包含20多条记录的静态表,我想选择N(N也许类似的东西可以工作: int randomSkip; int randomTake; randomSkip = GenerateSomeAppropriateRandomNumber(); randomTake = GenerateSomeAppropriateRandomNumber(); resultSet = iEnumerable.Skip(randomSkip).Take(randomTake); 以下是最好的方法: var r

我有一个包含20多条记录的静态表,我想选择N(N也许类似的东西可以工作:

int randomSkip;
int randomTake;

randomSkip = GenerateSomeAppropriateRandomNumber();
randomTake = GenerateSomeAppropriateRandomNumber();

resultSet = iEnumerable.Skip(randomSkip).Take(randomTake);
以下是最好的方法:

var randomUsers = users.OrderBy(x => Guid.NewGuid()).Take(15);

可能重复@Ahmad,不,这不是重复,因为我要选择一个常量(比如说5)记录,但它们必须是随机的。因此,我想在我之前以随机方式对数据集进行排序。获取(5)我建议的副本中的解决方案会起作用。您可以查询项目,按随机函数排序,然后
。获取(N)
最后。还是我误解了?不,我总是想选择固定数量的记录。但该子集中的记录应该是随机的。使用此解决方案,每个项目被选择的概率都不相同。我知道这是很久以前的事了,但你的答案对我来说非常有效。我一直在寻找时间!!thabksIs生成一个GU每个元素的ID是否合理?与随机选择相比,这有多复杂?Dave Hillier,我认为只选择“随机选择”的问题必须解决其中的随机元素。生成guid并对其进行排序是有成本的,但在其他方面,这是一个非常干净和可靠的代码位,用于获取随机回退(因为guid将在每次运行查询时创建一个新的随机顺序)如果记录集很大,那么创建一段代码,从结果集中随机选择N条唯一的记录可能是有意义的。