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;