Entwickler-Ecke
WinForms - List sortieren
uwe1234 - Fr 26.08.11 23:31
Titel: List sortieren
Hallo zusammen,
ich habe eine
C#-Quelltext
1:
| List<Panel> panelList = new List<Panel>(); |
in der ich Panels hinzufüge.
Wie kann ich die Liste nach dem Namen der Panels sortieren. Die Panels haben einen Namen mit einer fortlaufende Nummer. Leider werden die Panels nicht der Reihe nach eingetragen.
Für einen Tipp wäre ich dankbar, den ich hänge schon eine Weile an dem Problem.
Gruß Uwe
Yogu - Sa 27.08.11 00:38
Hallo,
mit Lambda-Ausdrücken geht das recht schön:
C#-Quelltext
1:
| panelList.Sort((left, right) => left.Name.CompareTo(right.Name)); |
Besser zu verstehen ist allerdings die ausformulierte Variante:
C#-Quelltext
1: 2: 3: 4: 5:
| private void comparePanels(Panel left, Panel right) { return left.Name.CompareTo(right.Name); }
panelList.Sort(comparePanels); |
Grüße,
Yogu
uwe1234 - Sa 27.08.11 18:05
Hallo,
danke für die Hilfe. Ich habe es versucht. Kann es sein das es mehrmals durchlaufen muss damit es "komplett" sortiert ist?
Ich habe es versucht und mir im debugger die Liste angeschaut. Diese war leider nicht richtig sortiert.
Gruß Uwe
Kha - Sa 27.08.11 18:07
Dann hätte die Methode den Namen wohl nicht verdient. Du bist dir bewusst, dass die Sortierung von Yogu lexikografisch ist?
Th69 - So 28.08.11 09:40
Hallo Uwe,
wenn du die Panels als
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| panel1 panel2 ... panel9 panel10 panel11 ... panel20 ... |
anstatt alphanumerisch
Quelltext
1: 2: 3: 4: 5: 6: 7:
| panel1 panel10 panel11 panel2 panel20 ... panel9 |
sortieren lassen willst, dann lautet das Stichwort dafür "Natürliche Sortierung" (Natural Sort), z.B.
http://www.interact-sw.co.uk/iangblog/2007/12/13/natural-sorting
uwe1234 - So 28.08.11 13:28
Hallo Th69,
so was habe ich gesucht. Ich habe aber die Antwort von Yogu verwendet. Nachdem ich verstanden habe das die Sortierung
"lexikografisch", danke google :wink:, ist, habe ich meine Panel von panel1 auf panalAA etc. umgetauft. Für mein
Problem funktioniert das ebenso. Trotzdem Danke für den Link, ganz interessant.
by the way: Kann mir jemand ein gutes Buch zum Thema C# und OOP empfehlen? Ich tue mich noch etwas schwer mit der Denkweise von OOP.
Gruß Uwe
uwe1234 - Di 30.08.11 17:50
Hallo Yogu,
danke für die Tipps.
Gruß Uwe
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!