linq多个顺序DESCENDING

ili*_*ica 23 linq sql-order-by

.OrderBy(y => y.Year).ThenBy(m => m.Month);
Run Code Online (Sandbox Code Playgroud)

如何设定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)
                         ;
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*cek 52

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

items.OrderByDescending(y => y.Year).ThenByDescending(m => m.Month); 
Run Code Online (Sandbox Code Playgroud)

使用LINQ查询,您可以编写:

from date in db.Dates
orderby date.Key.year descending, date.Key.month descending 
select new { ... } 
Run Code Online (Sandbox Code Playgroud)

诀窍是你只需要一个orderby子句 - 如果你添加多个子句,每次都会重新排序列表.排序显示有使用另一个关键等于第一要素,则需要使用它们分开,(orderby被翻译成OrderByOrderByDescending同时,被翻译成ThenByThenByDescending).