Hallo!
Ich habe eine zweidimensionale Objektliste, die (stark vereinfacht) so aussieht:
Delphi-Quellcode:
type
TZelle = class(TObject)
public
ZuSortierendeProperty: string;
end;
TSpalte = TObjectList<TZelle>;
TTabelle = class(TObjectList<TSpalte>)
public
procedure Sort(const ASpalte: Word);
end;
Nun möchte ich eine Spalte sortieren. Die Spalte soll aber dadurch nicht ihre "zeilenweise Bindung" an die anderen Spalten verlieren. Sonst gibts lustiges Datenchaos. Darum kann ich auch nicht einfach
TSpalte.Sort(const AComparer: IComparer<T>)
verwenden sondern muss eine Ebene höher im
TTabelle
ansetzen.
Nur wie müsste ich die Sache angehen? Meine noch recht vage Idee geht dahin, einen eigenen Quicksort zu implementieren. Dieser würde dann den Vergleich zweier
TZelle.ZuSortierendeProperty
nur in einer Spalte machen, das "Plätze tauschen" aber in allen Spalten gleichzeitig. Oder wie würdet ihr das machen?
Viele Grüße
Cody