linq несколько заказывают УБЫВАНИЕ

.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 дважды как я использовал его здесь?

23
задан ilija veselica 18 June 2010 в 09:49
поделиться

1 ответ

Вы можете получить порядок убывания, используя другую пару методов:

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 преобразуется в OrderBy или OrderByDescending , а , переводится в ThenBy или ThenByDescending ).

52
ответ дан 29 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: