【问题标题】:How do i return a certain max number of items from a collection using linq如何使用 linq 从集合中返回某个最大数量的项目
【发布时间】:2010-08-01 16:34:02
【问题描述】:

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

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

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

我如何在 LINQ 中做到这一点?

【问题讨论】:

    标签: linq collections


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用.Take(...) 函数。

      您还可以将.Skip(..) 与它结合使用进行分页查询。

      此外,如果您可以避免使用.ToList(),那么您需要避免过早使用它,因为它会评估查询并返回结果集。

      【讨论】:

        【解决方案3】:
        return appChanges.OrderByDescending(r => r.Change.When).Take(n);
        

        【讨论】:

          猜你喜欢
          • 2015-03-25
          • 1970-01-01
          • 2013-09-24
          • 1970-01-01
          • 2014-10-24
          • 1970-01-01
          • 2014-03-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多