IComparer<T>.Compare(T, T) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Vergleicht zwei Objekte und gibt einen Wert zurück, der angibt, ob ein Wert niedriger, gleich oder größer als der andere Wert ist.
public:
int Compare(T x, T y);
public int Compare (T x, T y);
public int Compare (T? x, T? y);
abstract member Compare : 'T * 'T -> int
Public 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 .
|
Zero | x ist gleich y .
|
Größer als 0 (null) | x ist größer als y .
|
Beispiele
Im folgenden Beispiel wird die IComparer<T> -Schnittstelle implementiert, um Objekte vom Typ Box
entsprechend ihren Dimensionen zu vergleichen. Dieses Beispiel ist Teil eines größeren Beispiels, das für die Comparer<T> -Klasse bereitgestellt wird.
// 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
Implementieren Sie diese Methode, um einen benutzerdefinierten Sortierreihenfolgevergleich für den Typ T
bereitzustellen.
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.