IComparer<T>.Compare(T, T) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Porovná dva objekty a vrátí hodnotu označující, zda je jeden menší než, roven nebo větší než druhý.
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
Parametry
- x
- T
První objekt k porovnání
- y
- T
Druhý objekt k porovnání
Návraty
Celé číslo se znaménkem, které označuje relativní hodnoty x
a , y
jak je znázorněno v následující tabulce.
Hodnota | Význam |
---|---|
Menší než nula | x je menší než y .
|
Žádnou | x rovná se y .
|
Větší než nula | x je větší než y .
|
Příklady
Následující příklad implementuje IComparer<T> rozhraní pro porovnání objektů typu Box
podle jejich dimenzí. Tento příklad je součástí většího příkladu Comparer<T> pro třídu.
// 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
Poznámky
Implementujte tuto metodu, která poskytuje přizpůsobené porovnání pořadí řazení pro typ T
.
Porovnání null
s libovolným referenčním typem je povoleno a nevygeneruje výjimku. Nulový odkaz je považován za menší než jakýkoli odkaz, který není null.