DotNet String Sortierung
Hi,
habe hier im .Net einen komischen Effekt beim Sortieren von Strings.
Gegeben sind 3 Strings (in Wunsch-Reihenfolge)
Wenn ich diese sortiere, egal wie, dann kommt diese Reihenfolge raus (ascend)
A) Wieso?
B) Wie kann ich ihm das abgewöhnen?
Der scheint ohne die "-" zu sortieren.
Wenn die Strings statt "-" jeweils Leerzeichen oder "_" enthalten, dann funktioniert das ... !?
E.
Edit:
habe hier im .Net einen komischen Effekt beim Sortieren von Strings.
Gegeben sind 3 Strings (in Wunsch-Reihenfolge)
- ABC-XY-100
- ABC-XY-102
- ABCXY1-0102
Wenn ich diese sortiere, egal wie, dann kommt diese Reihenfolge raus (ascend)
- ABC-XY-100
- ABCXY1-0102
- ABC-XY-102
A) Wieso?
B) Wie kann ich ihm das abgewöhnen?
Der scheint ohne die "-" zu sortieren.
Wenn die Strings statt "-" jeweils Leerzeichen oder "_" enthalten, dann funktioniert das ... !?
E.
Edit:
Dim l As New List(Of String)
l.Add("ABC-XY-102")
l.Add("ABC-XY-100")
l.Add("ABCXY1-0102")
l.Sort()
MsgBox(l(0) & vbNewLine & _
l(1) & vbNewLine & _
l(2))
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 331700
Url: https://administrator.de/forum/dotnet-string-sortierung-331700.html
Ausgedruckt am: 10.04.2025 um 10:04 Uhr
5 Kommentare
Neuester Kommentar

Hi,
http://stackoverflow.com/questions/11038398/how-does-net-sort-special-c ...
https://unicode-table.com/de/
Gruß schnappi
A) Wieso?
das liegt an der Reihenfolge wie .NET die Wertigkeit der Sonderzeichen beim Default IComparer einstuft. Per Default wird nach aktueller Culture sortiert, möchte man das nicht, sortiert man stattdessen nach Rang(ordinal).http://stackoverflow.com/questions/11038398/how-does-net-sort-special-c ...
https://unicode-table.com/de/
B) Wie kann ich ihm das abgewöhnen?
c#List<string> list = new List<string> {"ABCXY1-0102","ABC-XY-100", "ABC-XY-102"};
list.Sort(StringComparer.Ordinal);
MessageBox.Show(String.Join("\r\n",list));