2010-10-13 10 views
107

Ich mag würde eine Liste erhalten sortiert von 'Product.Name' in absteigender Reihenfolge.C# list.Orderby absteigend

Ähnlich wie die Funktion unten, die die Liste in aufsteigender Reihenfolge sortiert, nur umgekehrt, ist das möglich?

var newList = list.OrderBy(x => x.Product.Name).ToList(); 
+0

Könnte das Problem sein, dass Sie 'toList' anstelle von' ToList' geschrieben haben? –

+1

Ich glaube, er meinte, dass es das 'absteigend' Schlüsselwort nicht akzeptiert, weil er seinen Ausdruck nicht mit' von x in Liste 'begonnen hat ... ' – StriplingWarrior

+1

Entschuldigung, ich habe diesen Code nicht genau kopiert, sondern abgetippt Erinnerung. Mein tatsächlicher Code funktioniert, aber gibt nur eine Liste zurück, die in aufsteigender Reihenfolge sortiert ist. – PFranchise

Antwort

194

Sure:

var newList = list.OrderByDescending(x => x.Product.Name).ToList(); 

Doc: OrderByDescending(IEnumerable, Func).

Als Antwort auf Ihren Kommentar:

var newList = list.OrderByDescending(x => x.Product.Name) 
        .ThenBy(x => x.Product.Price) 
        .ToList(); 
+2

Ihre Sortierung wird also nach Name sortiert (von z-> a) und dann nach Preis (niedrig -> hoch)? – PFranchise

+10

Ja, das ist richtig. Aufrufe an OrderBy oder ThenBy sind immer aufsteigend. Die Methoden OrderByDescending und ThenByDescending verwenden Sie für das Absteigen. – StriplingWarrior

8
list.OrderByDescending(); 

funktioniert für mich.

+2

Dies tat nichts ohne tun list = list.OrderByDescending(). ToList(); – Almo

-2
list = new List<ProcedureTime>(); sortedList = list.OrderByDescending(ProcedureTime=> ProcedureTime.EndTime).ToList(); 

Welche funktioniert für mich, um die Zeit in absteigender Reihenfolge sortiert anzuzeigen.

+15

Diese Antwort wurde bereits vor fast drei Jahren gegeben – Dutts

4
var newList = list.OrderBy(x => x.Product.Name).Reverse() 

Dies sollte die Aufgabe erledigen.

0

es dieses Stück Code von meinem Projekt sucht

Ich versuche, die Liste auf einem Grundstück in meinem Modell basiert neu zu ordnen, konfrontiert

allEmployees = new List<Employee>(allEmployees.OrderByDescending(employee => employee.Name)); 

aber ich habe ein Problem, wenn ein small and capital letters exist Um es zu lösen, habe ich den String-Vergleich benutzt.

allEmployees.OrderBy(employee => employee.Name,StringComparer.CurrentCultureIgnoreCase) 
Verwandte Themen