Comparer<T>.Compare(T, T) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
派生クラスでオーバーライドされると、同じ型の 2 つのオブジェクトの比較を実行し、1 つのオブジェクトが他方より小さいか、等しいか、または大きいかを示す値を返します。
public:
abstract int Compare(T x, T y);
public abstract int Compare(T x, T y);
public abstract int Compare(T? x, T? y);
abstract member Compare : 'T * 'T -> int
Public MustOverride Function Compare (x As T, y As T) As Integer
パラメーター
- x
- T
比較する最初のオブジェクト。
- y
- T
比較する 2 番目のオブジェクト。
返品
次の表に示すように、 x と yの相対値を示す符号付き整数。
| 価値 | 意味 |
|---|---|
| 0 未満 |
x が y未満です。
|
| ゼロ |
x は yと等しくなります。
|
| 0 より大きい |
x が y より大きい。
|
実装
例外
型 T では、 IComparable<T> ジェネリック インターフェイスまたは IComparable インターフェイスは実装されません。
例
次の例では、既定の比較子の代わりに使用できる Box オブジェクトの比較子を定義します。 この例は、 Comparer<T> クラスに提供されるより大きな例の一部です。
public class BoxLengthFirst : Comparer<Box>
{
// Compares by Length, Height, and Width.
public override int Compare(Box x, Box y)
{
if (x.Length.CompareTo(y.Length) != 0)
{
return x.Length.CompareTo(y.Length);
}
else if (x.Height.CompareTo(y.Height) != 0)
{
return x.Height.CompareTo(y.Height);
}
else if (x.Width.CompareTo(y.Width) != 0)
{
return x.Width.CompareTo(y.Width);
}
else
{
return 0;
}
}
}
type BoxLengthFirst() =
inherit Comparer<Box>()
// Compares by Length, Height, and Width.
override _.Compare(x: Box, y: Box) =
if x.Length.CompareTo y.Length <> 0 then
x.Length.CompareTo y.Length
elif x.Height.CompareTo y.Height <> 0 then
x.Height.CompareTo y.Height
elif x.Width.CompareTo y.Width <> 0 then
x.Width.CompareTo y.Width
else
0
Public Class BoxLengthFirst
Inherits Comparer(Of Box)
' Compares by Length, Height, and Width.
Public Overrides Function Compare(ByVal x As Box, ByVal y As Box) As Integer
If x.Length.CompareTo(y.Length) <> 0 Then
Return x.Length.CompareTo(y.Length)
ElseIf x.Height.CompareTo(y.Height) <> 0 Then
Return x.Height.CompareTo(y.Height)
ElseIf x.Width.CompareTo(y.Width) <> 0 Then
Return x.Width.CompareTo(y.Width)
Else
Return 0
End If
End Function
End Class
注釈
このメソッドを実装して、型 Tの並べ替え順序の比較をカスタマイズします。
注意 (実装者)
nullを任意の参照型と比較することは許可されており、例外は生成されません。 null 参照は、null 以外の参照よりも小さいと見なされます。
カルチャ固有の比較については、 System.Globalization 名前空間と グローバリゼーションとローカライズに関するページを参照してください。