How to Order/Sort List<T> die Verwendung von Lambda-Ausdrücken in C#5?
Ich die Umwandlung meiner Anwendung aus .Net 4.0 auf .Net 4.5 Framework und es gibt eine änderung in der List<>
definition.
Meine alte code sah wie folgt aus (.Net 4.0):
List<Customer> list = new List<Customer>();
list.Add(new Customer("Smith", "John", "Sydney", 45));
list.Add(new Customer("Mitchell", "Brad", "New York", 52));
list.Add(new Customer("Baker", "William", "Cape Town", 21));
list.OrderBy(x => x.Name);
Verwenden .Net 4.5 (C#5) die List<T>.OrderBy()
Methode ist verschwunden und nur List<T>.Sort()
verfügbar ist, aber es sieht aus wie es gibt keine Möglichkeit der Verwendung eines Lambda-Ausdrucks mit dieser Methode.
Gibt es eine andere option als die Definition einer IComparer
für jeden <T>
?
Wenn es wirklich keine option für einen Lambda-Ausdruck, könnte ich Leben mit einem generischen IComparer
, aber wie wählen Sie die Eigenschaft verglichen werden?
Gelöst/Edit:
using Linq;
[...]
List<Customer> list = new List<Customer>();
list.Add(new Customer("Smith", "John", "Sydney", 45));
list.Add(new Customer("Mitchell", "Brad", "New York", 52));
list.Add(new Customer("Baker", "William", "Cape Town", 21));
list.OrderBy(x => x.Name); //list stays unordered
list = list.OrderBy(x => x.Name).ToList(); //list content is now ordered
InformationsquelleAutor MikeR | 2013-01-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
List<T>.OrderBy()
ist nicht Weg, es ist noch eine Erweiterung MethodeVerwenden Sie
machen, damit es funktioniert
In Ihrem code, die Sie verwenden sollten " - Liste.OrderBy(x => x.Name);"