Liste Sortieren nach Alphabetischer Reihenfolge

I'm mit C# auf Framework 3.5. Ich möchte eine generische Liste schnell sortieren. Für dieses Beispiel nehme ich an, dass ich eine Liste vom Typ Person mit einer Eigenschaft von lastname habe. Wie würde ich diese Liste mit einem Lambda-Ausdruck sortieren?

List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
Lösung

Wenn Sie eine In-Place-Sortierung meinen (d.h. die Liste wird aktualisiert):

people.Sort((x, y) => string.Compare(x.LastName, y.LastName));

Wenn Sie eine neue Liste meinen:

var newList = people.OrderBy(x=>x.LastName).ToList(); // ToList optional
Kommentare (9)

Soll die Liste an Ort und Stelle sortiert werden oder nur eine geordnete Reihenfolge des Inhalts der Liste? Letzteres ist einfacher:

var peopleInOrder = people.OrderBy(person => person.LastName);

Um an Ort und Stelle zu sortieren, brauchen Sie einen IComparer oder einen Comparison. Hierfür können Sie ProjectionComparer in MiscUtil in Betracht ziehen.

(Ich weiß, ich erwähne MiscUtil immer wieder - es ist einfach immer wieder relevant...)

Kommentare (2)
people.OrderBy(person => person.lastname).ToList();
Kommentare (3)