Anfängerfrage - mehrdimensionales Array sortieren
-
Hallo,
ich erstelle mit
array<String^,2> ^arr = gcnew array<String^,2>(5,3);
ein Array.1 | Name | Vorname
4 | Name | Vorname
5 | Name | Vorname
3 | Name | Vorname
2 | Name | VornameNach dem Befüllen möchte ich dieses nach Spalte 1
sortieren.
Wie kann ich das bewerkstelligen?
->Sort() klappt ja nur bei eindimensionalen Arrays...Für Eure Tipps dankend
Klaus
-
1. Mache eine Klasse Person mit Vorname und Nachname als Attribut
2. Mache ein Array (oder besser eine List<Person^>) und sortiere dann.
Dazu kannst Du dann der Klasse Person das IComparable<..> Interface impl.
Oder dem Sort(..) Aufruf ein Delegaten zum Vergleichen übergeben (Comparison<Person^>).Simon
-
Nach ewiger googelei, nem Liter Kaffee und ner Schachtel Zigaretten
hab ich mich auch dazu durchgerungen. Muss zwar deswegen einen recht komplexen Teil Code austauschen, nützt aber wohl nix. Geht schlussendlich so auch komfortabler.ref class users:IComparable { public: property Int32 Rank; property String ^Name; property String ^Vorname; virtual Int32 CompareTo(Object ^objekt){ users^ item = safe_cast<users^> (objekt); if (this->rank < item->rank) return -1; else return 1; } System::Void AddEntry(Int32 ^_Rank, String ^_Name, String ^_Vorname){ this->Rank = _Rank; this->Name = _Name; this->Vorname = _Vorname; } //usw..... };
Thx 4 Help! und schöne Grüße
Klaus
-
Moin,
(im Klugscheißmodus)
return item->rank - this->rank; // oder return (this->rank < item->rank ? -1 : 1);
hand, mogel
-
Feiner Klugscheißmodus !!!
Thx a lot!
Klaus