Я знаю в нормальной грамматике Linq, orderby xxx descending
это очень легко, но как мне сделать это в лямбда-выражении?
250
Как говорит Брэннон, это OrderByDescending
и ThenByDescending
:
var query = from person in people
orderby person.Name descending, person.Age descending
select person.Name;
эквивалентно:
var query = people.OrderByDescending(person => person.Name)
.ThenByDescending(person => person.Age)
.Select(person => person.Name);
Использовать
System.Linq.Enumerable.OrderByDescending()
?Например:
источник
Попробуй это:
источник
Попробуйте это по-другому:
Queryable.ThenBy
источник
Это работает только в тех случаях, когда у вас есть числовое поле, но вы можете поставить знак минус перед именем поля, например, так:
Однако это работает немного по- другому , чем
OrderByDescending
когда вы работаете его наint?
илиdouble?
илиdecimal?
полей.То, что произойдет, будет
OrderByDescending
с нулями в конце, а с этим методом нули будут в начале. Что полезно, если вы хотите перетасовать нули вокруг, не разбивая данные на части и не разбивая их позже.источник
LastOrDefault()
обычно не работает, но сTolist()
этим будет работать. Нет необходимостиOrderByDescending
использоватьTolist()
подобное.источник