可能重复:
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
答案 0 :(得分:3)
您可以在Take(50)
之前随机订购列表。
应该是这样的:
myCollection = list.Distinct().OrderBy(s => Guid.NewGuid()).Take(50).ToList();
我认为Guid.NewGuid()
的想法效率不高,但您可以考虑使用Random
生成器。