我有下面的代码构建一个集合并返回它按属性
排序var appChanges = GetHistory().ToList();
return appChanges.OrderByDescending(r => r.Change.When);
我希望这只能返回最多50个项目(如果集合大小小于50,则为总数)
我怎么能在LINQ中做到这一点?
答案 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);