LINQ不使用lambda表达式时的多个顺序

时间:2012-12-22 12:53:31

标签: c# linq

  

可能重复:
  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 descending then searchquery)..

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

descending之后加上一个逗号并指定要排序的下一个内容(可选择添加descending)等等

答案 1 :(得分:0)

只是为 mlorbetske 回答添加一些代码,如果您有这样的Customer类:

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

然后你可以执行这样的排序:

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