LINQ多重排序降序

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

如何设置降序排序?

编辑:

我尝试过这样做:

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个回答

60

你可以使用不同的一组方法来获取降序排序:

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)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接