IComparer<T> IComparer<T> IComparer<T> IComparer<T> Interface

Definition

Definiert eine Methode, die ein Typ zum Vergleichen zweier Objekte implementiert.Defines a method that a type implements to compare two objects.

generic <typename T>
public interface class IComparer
public interface IComparer<in T>
type IComparer<'T> = interface
Public Interface IComparer(Of In T)

Typparameter

T

Der Typ der zu vergleichenden Objekte.The type of objects to compare.

Abgeleitet

Beispiele

Im folgenden Beispiel implementiert die IComparer<T> Schnittstelle für Objekte vom Typ Box nach ihren Dimensionen.The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. In diesem Beispiel ist Teil eines umfangreicheren Beispiels für die Comparer<T> Klasse.This example is part of a larger example provided for the Comparer<T> class.

// 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;
        }
    }
}
' 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
	Implements IComparer(Of Box)
	' Compares by Height, Length, and Width.
    Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _
                                                IComparer(Of Box).Compare
        If x.Height.CompareTo(y.Height) <> 0 Then
            Return x.Height.CompareTo(y.Height)
        ElseIf x.Length.CompareTo(y.Length) <> 0 Then
            Return x.Length.CompareTo(y.Length)
        ElseIf x.Width.CompareTo(y.Width) <> 0 Then
            Return x.Width.CompareTo(y.Width)
        Else
            Return 0
        End If
    End Function
End Class

Hinweise

Diese Schnittstelle wird verwendet, mit der List<T>.Sort und List<T>.BinarySearch Methoden.This interface is used with the List<T>.Sort and List<T>.BinarySearch methods. Es bietet eine Möglichkeit, die Sortierreihenfolge einer Sammlung anpassen.It provides a way to customize the sort order of a collection. Klassen, die diese Schnittstelle implementieren, sind die SortedDictionary<TKey,TValue> und SortedList<TKey,TValue> generischen Klassen.Classes that implement this interface include the SortedDictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes.

Die standardmäßige Implementierung dieser Schnittstelle ist die Comparer<T> Klasse.The default implementation of this interface is the Comparer<T> class. Die StringComparer -Klasse implementiert diese Schnittstelle für ein String.The StringComparer class implements this interface for type String.

Diese Schnittstelle unterstützt Vergleiche der Reihenfolge.This interface supports ordering comparisons. Wenn die Compare -Methode 0 zurückgibt, bedeutet, dass zwei Objekte die gleiche Weise sortieren.That is, when the Compare method returns 0, it means that two objects sort the same. Implementierung genauer Gleichheitsvergleiche gemäß der IEqualityComparer<T> generischen Schnittstelle.Implementation of exact equality comparisons is provided by the IEqualityComparer<T> generic interface.

Empfohlen, dass Sie aus der Comparer<T> Klasse anstatt der IComparer<T> Schnittstelle, da die Comparer<T> -Klasse stellt eine explizite Implementierung von der IComparer.Compare -Methode und Default Eigenschaft, Ruft den Standardvergleich für das Objekt.We recommend that you derive from the Comparer<T> class instead of implementing the IComparer<T> interface, because the Comparer<T> class provides an explicit interface implementation of the IComparer.Compare method and the Default property that gets the default comparer for the object.

Methoden

Compare(T, T) Compare(T, T) Compare(T, T) Compare(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.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

Gilt für:

Siehe auch