【问题标题】:LINQ Multiple order by when not using lambda expressions [duplicate]不使用 lambda 表达式时的 LINQ 多重排序 [重复]
【发布时间】:2012-12-22 12:53:31
【问题描述】:

可能重复:
Multiple “order by” in LINQ

我想按某个字段排序一些数据集,然后按其他字段排序。

使用 lambda 表达式这很容易(OrderBy.ThenBy),但是当我有这样的语法时该怎么做:

 int maxQueries = int.MaxValue;
        // finds the most search for queries
        var ordered = from p in searchLogs
        where !string.IsNullOrEmpty(p.SearchQuery)
        group p by new 
        { 
           SearchQuery = p.SearchQuery
        } 
        into pgroup
        let count = pgroup.Count()
        orderby count descending
        select new 
        { 
            Count = count, 
            SearchQuery = pgroup.Key.SearchQuery
        };

我似乎找不到在降序关键字之后起作用的方法(例如 orderby count 降序然后 searchquery)..

有什么想法吗?

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    descending 后面加一个逗号并指定下一个排序依据(可选添加descending)等等

    【讨论】:

      【解决方案2】:

      如果您有这样的客户类,只需向 mlorbetske 答案添加一些代码:

      public class Customer
      {
          public string Name;
          public DateTime MemberSince;
      }
      

      然后您可以执行如下排序:

      var q = from c in Customers
              orderby c.MemberSince.Date descending, c.Name
              select c;
      

      【讨论】:

        猜你喜欢
        • 2013-03-08
        • 2013-07-12
        • 2018-09-10
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多