Share via


Vergleiche und Sortierungen innerhalb von Auflistungen

Aktualisiert: November 2007

Die System.Collections-Klassen führen bei nahezu allen Vorgängen, die zur Verwaltung von Auflistungen gehören, Vergleiche durch, z. B. bei der Suche nach einem zu entfernenden Element oder beim Zurückgeben des Werts eines Schlüssel/Wert-Paars.

Für Vergleiche werden zwei Konstrukte verwendet. Die Equals-Methode (geerbt oder abgeleitet von Object) gibt einfach einen booleschen Wert zurück, um anzuzeigen, ob zwei Objekte gleich sind. Die IComparable.CompareTo-Methode und die IComparer.Compare-Methode geben jeweils eine Ganzzahl zurück, die angibt, wie die beiden verglichenen Werte zueinander in Beziehung stehen. Equals wird für die Überprüfung der Gleichheit verwendet; die IComparable.CompareTo-Methode und die IComparer.Compare-Methode sowie ihre Entsprechungen in den generischen Schnittstellen, die IComparer<T>.Compare-Methode und die IComparable<T>.CompareTo-Methode, werden für Sortierungen verwendet.

Die Vergleiche können zwischen den Elementen der Auflistung oder zwischen einem Element und einem bestimmten Wert stattfinden. Wenn explizit kein Vergleich angegeben wurde, wird erwartet, dass die IComparable-Schnittstelle von mindestens einem zu vergleichenden Objekt implementiert wird und dass sich das Objekt selbst mit dem anderen Objekt vergleichen kann.

Einige Klassen verfügen über Methoden, die eine IComparer-Implementierung als Parameter akzeptieren. Bei der Verwendung solcher Methoden und wenn der IComparer-Parameter kein NULL-Verweis ist (Nothing in Visual Basic), müssen die zu vergleichenden Objekte IComparable nicht selbst implementieren. Allerdings ist es immer von Vorteil, IComparable in allen Klassen zu implementieren, die als Werte in Listen oder als Schlüssel in Wörterbüchern verwendet werden können.

Einige Konstruktorüberladungen für Wörterbuchauflistungen akzeptieren eine IComparer-Implementierung, mit der Schlüssel verglichen werden, falls dies erforderlich ist. Array weist Überladungen seiner Sort-Methode auf, die eine nur speziell für diesen Aufruf der Sort-Methode verwendete IComparer-Implementierung akzeptieren.

Die aktuelle Kultureinstellung des Systems kann sich auf die Vergleichs- und Sortiervorgänge innerhalb einer Auflistung auswirken. In der Standardeinstellung sind Vergleichs- und Sortiervorgänge in den Collections-Klassen kulturabhängig. Wenn die Kultureinstellung ignoriert werden soll, um konsistente Vergleichs- und Sortierergebnisse zu erhalten, verwenden Sie InvariantCulture mit Memberüberladungen, die CultureInfo akzeptieren. Weitere Informationen finden Sie unter Durchführen kulturunabhängiger Zeichenfolgenoperationen in Auflistungen und Durchführen kulturunabhängiger Zeichenfolgenoperationen in Arrays.

Siehe auch

Referenz

IComparer

IComparer<T>

IComparable

IComparable<T>

Weitere Ressourcen

Erstellen und Verändern von Auflistungen