Я хочу применить порядок по нескольким столбцам, некоторые по возрастанию, а другие - в порядке убывания в LINQ. Как я могу это сделать?
Как применить несколько orderby в linq-запросе
Ответ 1
var sortedCollection =
from item in collection
orderby item.Property1, item.Property2 descending, item.Property3
select item;
Ответ 2
Заимствование из 101 Образцы LINQ:
orderby p.Category, p.UnitPrice descending
или как Лямбда:
products.OrderBy(p => p.Category).ThenByDescending(p => p.UnitPrice);
Ответ 3
Ответ Стивена будет работать, но я предпочитаю привязку метода к декларативному синтаксису LINQ, например.
collection
.OrderBy(e => e.Property1)
.ThenByDescending(e => e.Property2)
.ThenBy(e => e.Property3)
Ответ 4
должно быть просто вопросом:
orderby x, y descending, z
Ответ 5
Для полноты и в качестве альтернативы другим хорошим ответам здесь...
Существует также перегрузка или OrderBy, которая принимает IComparer, если это общий шаблон заказа, который вы хотите, тогда вам может захотеть создать класс, который осуществляет его реализацию и передает его в orderby, позволяя ему обрабатывать больше сложный порядок, таким образом, его можно использовать повторно, когда вы заказываете свой запрос таким же образом.