linq多个顺序DESCENDING

时间:2010-06-18 09:43:26

标签: linq sql-order-by

.OrderBy(y => y.Year).ThenBy(m => m.Month);

如何设置descending订单?

修改

我试过了:

var result = (from dn in db.DealNotes
                         where dn.DealID == dealID                         
                         group dn by new { month = dn.Date.Month, year = dn.Date.Year } into date
                         orderby date.Key.year descending
                         orderby date.Key.month descending
                         select new DealNoteDateListView { 
                             DisplayDate = date.Key.month + "-" + date.Key.year,
                             Month = date.Key.month,
                             Year = date.Key.year,
                             Count = date.Count()
                         })
                         //.OrderBy(y => y.Year).ThenBy(m => m.Month)
                         ;

它似乎有效。像我在这里使用的那样使用orderby两次是错误的吗?

1 个答案:

答案 0 :(得分:50)

您可以使用不同的方法对来获得降序排序:

items.OrderByDescending(y => y.Year).ThenByDescending(m => m.Month); 

使用LINQ查询,您可以写:

from date in db.Dates
orderby date.Key.year descending, date.Key.month descending 
select new { ... } 

诀窍是你只需要一个orderby子句 - 如果你添加其中的多个子句,每次都会重新排序列表。要使用其他键对第一个键相等的元素进行排序,您需要使用,将其分开(orderby被翻译为OrderByOrderByDescending,被翻译为ThenByThenByDescending)。