Sortieren einer ArrayList
-
Hallo zusammen!
Ich habe folgendes Problem: Eine ArrayList enthält viele Objekte vom Typ Test.
Stark vereinfacht sieht dieses Objekt so aus:
class Test { public string Description; public DateTime date; public Test(){ } }
Jedes Objekt hat ein gültiges Datum. Die Objekte in der ArrayList sind durcheinander. Wie kann ich diese ArrayList nun nach dem Datum sortieren? Ich habe gerade Logik-Probleme :-((
Viele Grüße,
Lukas
-
Du bindest die IComparable Schnittstelle in deiner Klasse ein und rufts die Sort()-Methode deiner ArrayList auf.
class Test:IComparable { public string Description; public DateTime date; public Test(){ } public int CompareTo(object obj) { if(!(obj is Test)) return -1; return date.CompareTo(((Test)obj).date); } }
-
Wow... So einfach oder besser gesagt: so kurz
Das hätte ich nicht gedacht.
Vielen Dank für deine gute und schnelle Hilfe!
Viele Grüße,
Lukas
-
Welche .NET-Version verwendest Du denn? Ab 2.0 solltest Du die `ArrayList` meiden und stattdessen die generische `List`-Klasse verwenden. Außerdem kannst Du dann auch das Sortieren vereinfachen, indem Du den `Comparison`-Delegate verwendest. Ab C# 3.0 geht's dann auch mit Lambda:
myList.Sort((x, y) => x.date.CompareTo(y.date));
-
rdr_test_5;30;60