mehrdimensionales Array sortieren

magnificent

Mitglied
Hallo.

Ich würde gern ein mehrdimensionales Array sortieren, wobei die Sortierung auf eine bestimmte 'Spalte' angewendet werden soll, wie kann ich das realisieren?

Danke schon mal für die Antworten :)
 
Hi!

Du implementierst das IComparable Interface für deine Objekte,
sofern dies keine Standard-Datentypen sind die es bereits implementieren,
verwendest zusätzlich einen benutzerdefinierten Comparer
und sortierst die gewünschte Dimension mit Array.Sort.

Hier mal ein Beispiel:

Benutzerdefinierter Comparer
C#:
class MyComparer: IComparer
{
	int dimension;

	public MyComparer( int dimension ) {
		this.dimension = dimension;
	}

	public int Compare( object left, object right ) {
		MyObj[] o1 = (MyObj[]) left;
		MyObj[] o2 = (MyObj[]) right;
		return ( o1[dimension].CompareTo( o2[dimension] ) );
	}
}
Sortieren
C#:
MyComparer myComparer = new MyComparer( 1 );
Array.Sort(myArray, myComparer);

Das Beispiel müsstest sicher noch anpassen, ich hab im Moment nicht die Zeit eine Demo zu machen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück