linq multiple order DESCENDING
.OrderBy(y => y.Year).ThenBy(m => m.Month);
How to set descending
order?
EDIT:
I tried this:
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)
;
And it seems working. Is it wrong to use orderby
twice like I used it here?
You can get the descending ordering by using a different pair of methods:
items.OrderByDescending(y => y.Year).ThenByDescending(m => m.Month);
Using LINQ query, you can write:
from date in db.Dates
orderby date.Key.year descending, date.Key.month descending
select new { ... }
The trick is that you need only one orderby
clause - if you add multiple of these, the list will be re-sorted each time. To sort elements that have the first key equal using another key, you need to separate them using ,
(orderby
is translated to OrderBy
or OrderByDescending
while ,
is translated to ThenBy
or ThenByDescending
).
精彩评论