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

定義

比較兩個物件並傳回值,指出其中一個物件為小於、等於或大於另一個物件。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);
abstract member Compare : 'T * 'T -> int
Public Function Compare (x As T, y As T) As Integer

參數

x

要比較的第一個物件。The first object to compare.

y

要比較的第二個物件。The second object to compare.

傳回

帶正負號的整數,表示 xy 的相對值,如下表所示。A signed integer that indicates the relative values of x and y, as shown in the following table.

Value 意義Meaning
小於零Less than zero x 小於 yx is less than y.
Zero x等於 yx equals y.
大於零Greater than zero x 大於 yx is greater than y.

範例

下列範例會實作IComparer<T>比較的型別物件的介面Box根據其維度。The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. 這個範例是針對提供之較大範例的一部分Comparer<T>類別。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

備註

實作這個方法,以提供自訂排序次序比較型別TImplement this method to provide a customized sort order comparison for type T.

比較null具有任何參考型別允許和不會產生例外狀況。Comparing null with any reference type is allowed and does not generate an exception. Null 參考,會被視為小於任何不是 null 的參考。A null reference is considered to be less than any reference that is not null.

適用於

另請參閱