Teilen über


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.

public:
 abstract int Compare(T x, T y);
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.

y
T

Das zweite zu vergleichende Objekt.

Gibt zurück

Eine ganze Zahl mit Vorzeichen, die die relativen Werte von x und y angibt, wie in der folgenden Tabelle veranschaulicht.

Wert Bedeutung
Kleiner als 0 (null)x ist kleiner als y.
Zerox ist gleich y.
Größer als 0 (null)x ist größer als y.

Implementiert

Ausnahmen

Der Typ T implementiert weder die generische IComparable<T>-Schnittstelle noch die IComparable-Schnittstelle.

Beispiele

Im folgenden Beispiel wird ein Vergleich von Box Objekten definiert, die anstelle des Standardvergleichs verwendet werden können. Dieses Beispiel ist Teil eines größeren Beispiels, das für die Comparer<T> -Klasse bereitgestellt wird.

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 benutzerdefinierten Sortierreihenfolgevergleich für den Typ Tbereitzustellen.

Hinweise für Ausführende

Der Vergleich null mit einem beliebigen Verweistyp ist zulässig und generiert keine Ausnahme. Ein NULL-Verweis gilt als kleiner als jeder Verweis, der nicht NULL ist.

Informationen zu kulturspezifischen Vergleichen finden Sie unter Namespace System.Globalization und Globalisierung und Lokalisierung.

Gilt für:

Weitere Informationen