IComparer<T>.Compare(T, T) Metoda

Definicja

Porównuje dwa obiekty i zwraca wartość wskazującą, czy jedna z nich jest mniejsza, równa lub większa od drugiej.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

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

Pierwszy obiekt do porównania.The first object to compare.

y
T

Drugi obiekt do porównania.The second object to compare.

Zwraca

Int32

Liczba całkowita ze znakiem, która wskazuje wartości względne x i y , jak pokazano w poniższej tabeli.A signed integer that indicates the relative values of x and y, as shown in the following table.

WartośćValue ZnaczenieMeaning
Mniej niż zeroLess than zero x jest mniejsze niż y .x is less than y.
ZeroZero x równa się y .x equals y.
Większe od zeraGreater than zero x jest większa niż y .x is greater than y.

Przykłady

W poniższym przykładzie przedstawiono implementację IComparer<T> interfejsu w celu porównania obiektów typu Box według ich wymiarów.The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. Ten przykład jest częścią większego przykładu dostarczonego dla Comparer<T> klasy.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

Uwagi

Zaimplementuj tę metodę, aby zapewnić dostosowany porównanie kolejności sortowania dla typu T .Implement this method to provide a customized sort order comparison for type T.

Porównywanie null z dowolnym typem referencyjnym jest dozwolone i nie generuje wyjątku.Comparing null with any reference type is allowed and does not generate an exception. Odwołanie o wartości null jest uznawane za mniejsze niż dowolne odwołanie, które nie ma wartości null.A null reference is considered to be less than any reference that is not null.

Dotyczy

Zobacz też