Laden...

Sortierung mit Buchstaben

Erstellt von da_owa vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.083 Views
D
da_owa Themenstarter:in
58 Beiträge seit 2007
vor 16 Jahren
Sortierung mit Buchstaben

Hat jemand eine Idee, wie ich eine Sortierung mit Buchstaben realisieren kann.
Zurzeit ist es möglich, dass ich nach dem ersten Buchstaben sortiere.
Wenn ich auch nach dem zweiten Sortieren will, muss ich zum Verschachteln beginnen.
(Bsp.: Buchner kommt vor Burger)

Kennt jemand zufällig eine Funktion, damit ich nicht großartig zum Verschachteln beginnen muss?? Vl. auch eine .NET-Klasse??

Wie würdet ihr eine solche Funktion realisieren, damit ihr nach mehreren Buchstaben sortieren könnt??

:::{style="color: red;"}Es gibt 10 Arten von Menschen: Die die Tertiär verstehen, Die die es nicht verstehen und Die die es mit Binär verwechseln){red}
W
558 Beiträge seit 2006
vor 16 Jahren

das müsste mit LINQ bei Verwendung der Klausel GROUP BY funktionieren.

Edit: die sort-methode wäre noch einfacher. Die gibt es in den Arrays.

mfg
webstarg

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo da_owa,

worum geht es überhaupt. Was willst du sortieren? Ein Array? Und wieso musst du was "verschachteln"? Array.Sort würde Strings natürlich richtig sortieren, egal wie lang sie sind.

herbivore

D
da_owa Themenstarter:in
58 Beiträge seit 2007
vor 16 Jahren

Geht das Sortieren von Namen mittels Array.Sort??
Soweit ich informiert bin, geht das doch nur mit Zahlen??

:::{style="color: red;"}Es gibt 10 Arten von Menschen: Die die Tertiär verstehen, Die die es nicht verstehen und Die die es mit Binär verwechseln){red}
915 Beiträge seit 2006
vor 16 Jahren

Die Klasse String hat die Schnittstellen IComparable<string> bzw. IComparable implementiert.

Du kannst daher ganz normal Array.Sort dafür verwenden.
Oder anders mal aufgezeigt auch wenn es umständlich ist im "Prinzip" das selbe:


 private string[] GetSorted()
        {
            string[] myArrays = new string[] { "Hugo", "Jürgen", "Hans", "Barni" };
            Array.Sort<string>(myArrays, new CFilter().Compare);

            foreach (string _st in myArrays)
                Console.WriteLine(_st);
            
            return myArrays;

        }

        private class CFilter : IComparer<string>
        {
            public int Compare(string x, string y)
            {
                return string.Compare(x, y);
            }
        }

Ausgabe:


Barni
Hans
Hugo
Jürgen

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

D
da_owa Themenstarter:in
58 Beiträge seit 2007
vor 16 Jahren

Danke sehr, für eure Antworten!!!
Ich hätte es ziemlich umständlich gemacht, denn ich wusste nicht, dass es anders auch möglich ist.
👍

EDIT:

Kann mir auch jemand helfen wie ich dieses Array sortieren kann:
array[0, 0] = wert A;
array[0, 1] = wert B;
array[0, 2] = wert C;
array[0, 3] = wert D;
array[0, 4] = wert E;

array[1, 0] = wert F;
array[1, 1] = wert G;
...

sortiert werden soll z.B. nach array[i, 2]

Ich weiß zwar jetzt, wie ich auch zweidimensionale Arrays sortieren kann, aber bei diesem Array stehe ich daneben 🙁

:::{style="color: red;"}Es gibt 10 Arten von Menschen: Die die Tertiär verstehen, Die die es nicht verstehen und Die die es mit Binär verwechseln){red}
49.485 Beiträge seit 2005
vor 16 Jahren

Hallo da_owa,

Ich weiß zwar jetzt, wie ich auch zweidimensionale Arrays sortieren kann

da weißt du mehr als ich, zumindest, wenn du die Methoden des Frameworks meist. Die können eigentlich nur eindimensionale Array sortieren..

sortiert werden soll z.B. nach array[i, 2]

Möglicherweise ist Array.Sort (Array, Array) was für dich.

Aber wenn zweidimensionale Arrays sortiert werden sollen, ist vermutlich eher was mit dem Datenmodell faul.

herbivore