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

Definition

比较两个对象并返回一个值,该值指示一个对象小于、等于还是大于另一个对象。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

Parameters

x
T

要比较的第一个对象。The first object to compare.

y
T

要比较的第二个对象。The second object to compare.

Returns

Int32

一个有符号整数,指示 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.

Examples

下面的示例实现 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

Remarks

实现此方法可以为类型 T提供自定义的排序顺序比较。Implement 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. 空引用被视为小于任何非空引用。A null reference is considered to be less than any reference that is not null.

Applies to

See also