Comparer<T>.Compare(T, T) Methode

Definition

Vergleicht beim Überschreiben in einer abgeleiteten Klasse zwei Objekte gleichen Typs und gibt über den zurückgegebenen Wert an, ob das eine Objekt kleiner, größer oder gleich dem anderen Objekt ist.When overridden in a derived class, performs a comparison of two objects of the same type and returns a value indicating whether one object is less than, equal to, or greater than the other.

public:
 abstract int Compare(T x, T y);
public abstract int Compare (T x, T y);
abstract member Compare : 'T * 'T -> int
Public MustOverride Function Compare (x As T, y As T) As Integer

Parameter

x
T

Das erste zu vergleichende Objekt.The first object to compare.

y
T

Das zweite zu vergleichende Objekt.The second object to compare.

Gibt zurück

Eine ganze Zahl mit Vorzeichen, die die relativen Werte von x und y angibt, wie in der folgenden Tabelle veranschaulicht.A signed integer that indicates the relative values of x and y, as shown in the following table.

WertValue BedeutungMeaning
Kleiner als 0 (null)Less than zero x ist kleiner als y.x is less than y.
ZeroZero x ist gleich y.x equals y.
Größer als 0 (null)Greater than zero x ist größer als y.x is greater than y.

Implementiert

Ausnahmen

Der Typ T implementiert weder die generische IComparable<T>-Schnittstelle noch die IComparable-Schnittstelle.Type T does not implement either the IComparable<T> generic interface or the IComparable interface.

Beispiele

Im folgenden Beispiel wird ein Vergleich von Box -Objekten definiert, die anstelle des Standardcomparers verwendet werden können.The following example defines a comparer of Box objects that can be used instead of the default comparer. Dieses Beispiel ist Teil eines größeren Beispiels, das für die Comparer<T> -Klasse bereitgestellt wird.This example is part of a larger example provided for the Comparer<T> class.

public class BoxLengthFirst : Comparer<Box> 
{
    // Compares by Length, Height, and Width.
    public override int Compare(Box x, Box y)
    {
        if (x.Length.CompareTo(y.Length) != 0)
        {
            return x.Length.CompareTo(y.Length);
        }
        else if (x.Height.CompareTo(y.Height) != 0)
        {
            return x.Height.CompareTo(y.Height);
        }
        else if (x.Width.CompareTo(y.Width) != 0)
        {
            return x.Width.CompareTo(y.Width);
        }
        else
        {
            return 0;
        }
    }

}
Public Class BoxLengthFirst
    Inherits Comparer(Of Box)
    ' Compares by Length, Height, and Width.
    Public Overrides Function Compare(ByVal x As Box, ByVal y As Box) As Integer
        If x.Length.CompareTo(y.Length) <> 0 Then
            Return x.Length.CompareTo(y.Length)
        ElseIf x.Height.CompareTo(y.Height) <> 0 Then
            Return x.Height.CompareTo(y.Height)
        ElseIf x.Width.CompareTo(y.Width) <> 0 Then
            Return x.Width.CompareTo(y.Width)
        Else
            Return 0
        End If
    End Function

End Class

Hinweise

Implementieren Sie diese Methode, um einen angepassten Sortier Reihenfolgen TVergleich für den Typ bereitzustellen.Implement this method to provide a customized sort order comparison for type T.

Hinweise für Vererber

Der null Vergleich mit einem beliebigen Verweistyp ist zulässig und generiert keine Ausnahme.Comparing null with any reference type is allowed and does not generate an exception. Ein NULL-Verweis gilt als kleiner als jeder Verweis, der nicht NULL ist.A null reference is considered to be less than any reference that is not null.

Informationen zu kulturspezifischen vergleichen finden Sie unter System.Globalization Namespace und Globalisierung und Lokalisierung.For information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Gilt für:

Siehe auch