如何使用linq从集合中返回特定最大数量的项目

时间:2010-08-01 16:34:02

标签: linq collections

我有下面的代码构建一个集合并返回它按属性

排序
var appChanges = GetHistory().ToList();
return appChanges.OrderByDescending(r => r.Change.When);

我希望这只能返回最多50个项目(如果集合大小小于50,则为总数)

我怎么能在LINQ中做到这一点?

3 个答案:

答案 0 :(得分:4)

您正在寻找采取。见http://msdn.microsoft.com/en-us/library/bb503062.aspx

appChanges.OrderByDescending(r => r.Change.When).Take(50);

答案 1 :(得分:4)

使用.Take(...)功能。

您还可以将.Skip(..)与其一起用于分页查询。

此外,如果您可以避免使用.ToList(),则应尽早避免使用{{1}},因为它会评估查询并返回结果集。

答案 2 :(得分:2)

return appChanges.OrderByDescending(r => r.Change.When).Take(n);