[C#, Linq] OrderBy für List und DataTable

Drucken
( 0 Votes ) 
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 27.06.2013 Zuletzt aktualisiert am 27.06.2013 Geschrieben von Jonny132
Mittels Linq sind viele nützliche Features mitgekommen. Unter anderem auch die sehr nützliche OrderBy - Methode mit der man Listen (List) aber auch Tabellen (DataTable) ganz einfach sortieren lassen kann.


Einfache List<string> sortieren:
        // sortierte Liste in eine neue Variable schreiben
        List<string> unsortiert = new List<string>();
        unsortiert.Add("ksdg");
        unsortiert.Add("zsdg");
        unsortiert.Add("asdg");

        List<string> sortiert = unsortiert.OrderBy(x => x).ToList();

        // über sortierte Liste iterieren
        foreach (string text in unsortiert.OrderBy(x => x))
        {
          MessageBox.Show(text);
        }

Liste mit Objekten nach einer bestimmten Eigenschaft sortieren:
        public class Person
        {
          public int Alter { get; set; }
          public string Name { get; set; }
        }

        List<Person> unsortiert = new List<Person>();
        unsortiert.Add(new Person() {Alter = 25, Name = "Herbert" });
        unsortiert.Add(new Person() { Alter = 20, Name = "Peter" });
        unsortiert.Add(new Person() { Alter = 30, Name = "Sonja" });

        // Nach Name sortieren
        List<Person> sortiert = unsortiert.OrderBy(x => x.Name).ToList();

        // Nach Alter sortieren
        List<Person> sortiert = unsortiert.OrderBy(x => x.Alter).ToList();

DataTable sortieren:
List<DataRow> sortetResult = dataTable.OrderBy(x => x["SpaltenKey"]).ToList();

Will man absteigend Sortieren so kann man einfach die Funktion OrderByDescending verwenden anstadt OrderBy. Dies kann z.B. bei DateTime - Sortierungen hilfreich sein, wenn man nach dem jüngsten Datum sortieren will.

    Veröffentlichen Sie ihre Kommentare ...