myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: Windows-Forms » Warum sortieren numerische Strings mit negativen Werten nicht korrekt?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Warum sortieren numerische Strings mit negativen Werten nicht korrekt?

 
Beiträge zu diesem Thema Autor Datum
 Warum sortieren numerische Strings mit negativen Werten nicht korrekt? c#nup 15.10.2020 09:25
 RE: Warum sortieren numerische Strings mit negativen Werten nicht korrekt? dannoe 15.10.2020 10:57
 RE: Warum sortieren numerische Strings mit negativen Werten nicht korrekt? c#nup 15.10.2020 13:51
 RE: Warum sortieren numerische Strings mit negativen Werten nicht korrekt? witte 15.10.2020 15:18
 RE: Warum sortieren numerische Strings mit negativen Werten nicht korrekt? MrSparkle 15.10.2020 20:13
 RE: Warum sortieren numerische Strings mit negativen Werten nicht korrekt? chilic 16.10.2020 16:44

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
c#nup
myCSharp.de-Mitglied

Dabei seit: 04.12.2017
Beiträge: 19


c#nup ist offline

Warum sortieren numerische Strings mit negativen Werten nicht korrekt?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

gegeben ist ein DGV mit einer TextBoxColumn. In der Spalte stehen die Werte "1", "-1", und "2" drin. Durch das Klicken auf den Spaltenkopf werden die Werte sortiert. Aufsteigende Sortierung (von oben nach unten): "1", "-1","2". Absteigende Sortierung: "2", "-1", "1".

Ich hätte erwartet, dass hier zeichenweise sortiert wird, also "-", "1", "2", dem ist aber nicht so. Nach welcher Regel wird hier sortiert?
15.10.2020 09:25 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
dannoe
myCSharp.de-Mitglied

Dabei seit: 24.11.2015
Beiträge: 119
Entwicklungsumgebung: VS2005-VS2017


dannoe ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich bin mir relativ sicher, dass dort die "normale" Vergleichsfunktion für Strings aufgerufen wird.
siehe  Compare(String, String) (Beachte primär die die Dokumentation unter "Notes to Callers")
15.10.2020 10:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
c#nup
myCSharp.de-Mitglied

Dabei seit: 04.12.2017
Beiträge: 19

Themenstarter Thema begonnen von c#nup

c#nup ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für den Hinweis dannoe. Die Methode CompareOrdinal() ist die, die ich brauche. Dennoch frage ich mich, nach welcher Regel Compare() sortiert - gerade bei positiven und negativen Zahlen als strings.  Ein Blick in den Quellcode von String.Compare() führt zu einem PInvoke

C#-Code:
[System.Security.SecurityCritical]  // auto-generated
        [ResourceExposure(ResourceScope.Process)]
        [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
        [SuppressUnmanagedCodeSecurity]
        private static extern int InternalCompareString(IntPtr handle, IntPtr handleOrigin, String localeName, String string1, int offset1, int length1,
                                                                              String string2, int offset2, int length2, int flags);

Weiß jemand woher InternalCompareString() kommt und was es macht?
15.10.2020 13:51 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
witte
myCSharp.de-Mitglied

Dabei seit: 03.09.2010
Beiträge: 928


witte ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Gut möglich das er rein alphanumerisch sortiert und Sonderzeichen (in diesem Fall '-') rausfiltert.
15.10.2020 15:18 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.565
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Warum verwendest du denn überhaupt Strings, wenn es sich doch um Zahlen handelt?
15.10.2020 20:13 Beiträge des Benutzers | zu Buddylist hinzufügen
chilic
myCSharp.de-Poweruser/ Experte

Dabei seit: 12.02.2010
Beiträge: 2.056


chilic ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vielleicht weiß ja das Grid von irgendwoher dass es sich um Zahlen handelt und sortiert dementsprechend auch numerisch.
16.10.2020 16:44 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 27.11.2020 01:14