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))
Please also mark the comments that contributed to the solution of the article
Content-Key: 331700
Url: https://administrator.de/contentid/331700
Printed on: April 18, 2024 at 13:04 o'clock
5 Comments
Latest comment
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));