Autor Beitrag
uwe1234
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 26.08.11 23:31 
Hallo zusammen,

ich habe eine
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 27.08.11 00:38 
Hallo,

mit Lambda-Ausdrücken geht das recht schön:

ausblenden C#-Quelltext
1:
panelList.Sort((left, right) => left.Name.CompareTo(right.Name));					


Besser zu verstehen ist allerdings die ausformulierte Variante:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 28.08.11 09:40 
Hallo Uwe,

wenn du die Panels als
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
panel1
panel2
...
panel9
panel10
panel11
...
panel20
...

anstatt alphanumerisch
ausblenden 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. www.interact-sw.co.u...2/13/natural-sorting
uwe1234 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 28.08.11 16:54 
user profile iconuwe1234 hat folgendes geschrieben Zum zitierten Posting springen:
Kann mir jemand ein gutes Buch zum Thema C# und OOP empfehlen? Ich tue mich noch etwas schwer mit der Denkweise von OOP.

Das Galileo Openbook Visual C# 2010 empfehle ich immer wieder gerne. Fängt mit den Grundlagen an, enthält dann fortgeschrittene Sprachkonstrukte und rundet alles mit WPF ab.

Für die Grundlagen von OOP gibt's auch ein Openbook.
uwe1234 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Di 30.08.11 17:50 
Hallo Yogu,

danke für die Tipps.

Gruß Uwe