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

定義

2 つのオブジェクトを比較して、一方が他方より小さいか、同じか、または大きいかを示す値を返します。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

比較する 2 番目のオブジェクト。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
0 より小さい値Less than zero xy より小さい値です。x is less than y.
0Zero xy は等しい。x equals y.
0 より大きい値Greater than zero xy より大きくなっています。x 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

注釈

このメソッドを実装して、型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. Null 参照は、null 以外の参照よりも小さいと見なされます。A null reference is considered to be less than any reference that is not null.

適用対象

こちらもご覧ください