Ich weiß, dass es in der normalen Linq-Grammatik orderby xxx descending
sehr einfach ist, aber wie mache ich das im Lambda-Ausdruck?
250
Wie Brannon sagt, ist es OrderByDescending
und ThenByDescending
:
var query = from person in people
orderby person.Name descending, person.Age descending
select person.Name;
ist äquivalent zu:
var query = people.OrderByDescending(person => person.Name)
.ThenByDescending(person => person.Age)
.Select(person => person.Name);
Verwenden
System.Linq.Enumerable.OrderByDescending()
?Beispielsweise:
quelle
Versuche dies:
quelle
Versuchen Sie es anders:
Queryable.ThenBy
quelle
Dies funktioniert nur in Situationen, in denen Sie ein numerisches Feld haben. Sie können jedoch wie folgt ein Minuszeichen vor den Feldnamen setzen:
Dies funktioniert jedoch etwas anders als
OrderByDescending
wenn Sie es auf einemint?
oderdouble?
oderdecimal?
Feldern ausführen.Was passieren wird, ist, dass
OrderByDescending
die Nullen am Ende stehen, während bei dieser Methode die Nullen am Anfang stehen. Dies ist nützlich, wenn Sie Nullen mischen möchten, ohne Daten in Teile aufzuteilen und später zu spleißen.quelle
LastOrDefault()
funktioniert normalerweise nicht, aber mit dem wirdTolist()
es funktionieren. Es besteht keine Notwendigkeit zu verwendenOrderByDescending
VerwendungTolist()
wie diese.quelle