5

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

有任何想法吗?

4

2 回答 2

7

在后面加上一个逗号descending并指定下一个要排序的东西(可选地添加descending)等等

于 2012-12-22T12:56:57.847 回答
0

如果您有这样的 Customer 类,只需向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;
于 2012-12-22T13:26:26.670 回答