Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IComparer<T>-Schnittstelle

 

Veröffentlicht: Oktober 2016

Definiert eine Methode, die ein Typ implementiert, um zwei Objekte zu vergleichen.

Namespace:   System.Collections.Generic
Assembly:  mscorlib (in mscorlib.dll)

public interface IComparer<in T>

Typparameter

inT

Der Typ der zu vergleichenden Objekte.

NameBeschreibung
System_CAPS_pubmethodCompare(T, T)

Vergleicht zwei Objekte und gibt einen Wert zurück, der angibt, ob ein Wert niedriger, gleich oder größer als der andere Wert ist.

Diese Schnittstelle wird verwendet, mit der List<T>.Sort und List<T>.BinarySearch Methoden. Es bietet eine Möglichkeit, die Sortierreihenfolge einer Auflistung anpassen. Klassen, die diese Schnittstelle implementieren, sind die SortedDictionary<TKey, TValue> und SortedList<TKey, TValue> generischen Klassen.

Die standardmäßige Implementierung dieser Schnittstelle ist die Comparer<T> Klasse. Die StringComparer -Klasse implementiert diese Schnittstelle für den Typ String.

Diese Schnittstelle unterstützt Vergleiche der Reihenfolge. Das heißt, wenn die Compare Methode gibt 0 zurück, das bedeutet, dass zwei Objekte die gleiche Weise sortieren. Implementierung genauer Gleichheitsvergleiche wird bereitgestellt, indem die IEqualityComparer<T> generische Schnittstelle.

Es wird empfohlen, dass beim Ableiten von der Comparer<T> Klasse anstatt zu implementieren die IComparer<T> Schnittstelle, da die Comparer<T> -Klasse stellt eine explizite Implementierung von der IComparer.Compare Methode und die Default -Eigenschaft, die den Standardvergleich für das Objekt abgerufen.

Das folgende Beispiel implementiert die IComparer<T> Schnittstelle zum Vergleichen von Objekten des Typs Box gemäß ihrer Dimensionen. Dieses Beispiel ist Teil eines umfangreicheren Beispiels für die Comparer<T> Klasse.

// This class is not demonstrated in the Main method
// and is provided only to show how to implement
// the interface. It is recommended to derive
// from Comparer<T> instead of implementing IComparer<T>.
public class BoxComp : IComparer<Box>
{
    // Compares by Height, Length, and Width.
    public int Compare(Box x, Box y)
    {
        if (x.Height.CompareTo(y.Height) != 0)
        {
            return x.Height.CompareTo(y.Height);
        }
        else if (x.Length.CompareTo(y.Length) != 0)
        {
            return x.Length.CompareTo(y.Length);
        }
        else if (x.Width.CompareTo(y.Width) != 0)
        {
            return x.Width.CompareTo(y.Width);
        }
        else
        {
            return 0;
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: