带有LINQ的C#随机记录

时间:2011-11-19 11:03:14

标签: c# linq

  

可能重复:
  Is there a more efficent way to randomise a set of LINQ results?

我有一份包含300条记录的清单。我想只返回不同的随机记录,只返回带有LINQ的50条记录:

myCollection = list.Distinct().Take(50).ToList(); // myCollection is the new list

1 个答案:

答案 0 :(得分:3)

您可以在Take(50)之前随机订购列表。 应该是这样的:

myCollection = list.Distinct().OrderBy(s => Guid.NewGuid()).Take(50).ToList();

我认为Guid.NewGuid()的想法效率不高,但您可以考虑使用Random生成器。