C# 不使用lambda表达式时的LINQ多重排序依据

C# 不使用lambda表达式时的LINQ多重排序依据,c#,linq,C#,Linq,可能重复: 我想先按某个字段对某个数据集排序,然后再按另一个字段排序 使用lambda表达式会很容易(OrderBy.ThenBy),但如果我有这样的语法,该如何操作: int maxQueries = int.MaxValue; // finds the most search for queries var ordered = from p in searchLogs where !string.IsNullOrEmpty(p.Search

可能重复:

我想先按某个字段对某个数据集排序,然后再按另一个字段排序

使用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
        };
public class Customer
{
    public string Name;
    public DateTime MemberSince;
}
var q = from c in Customers
        orderby c.MemberSince.Date descending, c.Name
        select c;
我似乎找不到一种在decenting关键字之后工作的方法(比如orderby count decenting然后searchquery)


有什么想法吗?

降序
后加一个逗号,并指定下一个排序对象(可选添加
降序
),依此类推

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

 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
        };
public class Customer
{
    public string Name;
    public DateTime MemberSince;
}
var q = from c in Customers
        orderby c.MemberSince.Date descending, c.Name
        select c;
然后,您可以执行如下排序:

 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
        };
public class Customer
{
    public string Name;
    public DateTime MemberSince;
}
var q = from c in Customers
        orderby c.MemberSince.Date descending, c.Name
        select c;