Tuple<T1,T2>.IComparable.CompareTo(Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の Tuple<T1,T2> オブジェクトを指定したオブジェクトと比較し、現在のオブジェクトが並べ替え順序で指定したオブジェクトの前、後、または同じ位置にあるかどうかを示す整数を返します。
virtual int System.IComparable.CompareTo(System::Object ^ obj) = IComparable::CompareTo;
int IComparable.CompareTo(object obj);
abstract member System.IComparable.CompareTo : obj -> int
override this.System.IComparable.CompareTo : obj -> int
Function CompareTo (obj As Object) As Integer Implements IComparable.CompareTo
パラメーター
- obj
- Object
現在のインスタンスと比較するオブジェクト。
返品
次の表に示すように、このインスタンスの相対位置と並べ替え順序で obj を示す符号付き整数。
| 価値 | 説明 |
|---|---|
| 負の整数 | このインスタンスは、 objの前にあります。
|
| ゼロ | このインスタンスと obj は並べ替え順序で同じ位置にあります。
|
| 正の整数 | このインスタンスは objに従います。
|
実装
例外
obj は Tuple<T1,T2> オブジェクトではありません。
例
次の例では、学生の名前とテスト スコアで構成される Tuple<T1,T2> オブジェクトの配列を作成します。 配列内の各タプルのコンポーネントを並べ替えられていない順序で表示し、配列を並べ替え、 ToString を呼び出して、各タプルの値を並べ替えられた順序で表示します。 出力は、配列が最初のコンポーネントで並べ替えられたことを示しています。 この例では、 IComparable.CompareTo(Object) メソッドは直接呼び出されないことに注意してください。 このメソッドは、配列内の各要素の Sort(Array) メソッドによって暗黙的に呼び出されます。
using System;
public class Example
{
public static void Main()
{
Tuple<string, Nullable<int>>[] scores =
{ new Tuple<string, Nullable<int>>("Jack", 78),
new Tuple<string, Nullable<int>>("Abbey", 92),
new Tuple<string, Nullable<int>>("Dave", 88),
new Tuple<string, Nullable<int>>("Sam", 91),
new Tuple<string, Nullable<int>>("Ed", null),
new Tuple<string, Nullable<int>>("Penelope", 82),
new Tuple<string, Nullable<int>>("Linda", 99),
new Tuple<string, Nullable<int>>("Judith", 84) };
Console.WriteLine("The values in unsorted order:");
foreach (Tuple<string, Nullable<int>> score in scores)
Console.WriteLine(score.ToString());
Console.WriteLine();
Array.Sort(scores);
Console.WriteLine("The values in sorted order:");
foreach (Tuple<string, Nullable<int>> score in scores)
Console.WriteLine(score.ToString());
}
}
// The example displays the following output;
// The values in unsorted order:
// (Jack, 78)
// (Abbey, 92)
// (Dave, 88)
// (Sam, 91)
// (Ed, )
// (Penelope, 82)
// (Linda, 99)
// (Judith, 84)
//
// The values in sorted order:
// (Abbey, 92)
// (Dave, 88)
// (Ed, )
// (Jack, 78)
// (Judith, 84)
// (Linda, 99)
// (Penelope, 82)
// (Sam, 91)
open System
let scores =
[| Tuple<string, Nullable<int>>("Jack", 78)
Tuple<string, Nullable<int>>("Abbey", 92)
Tuple<string, Nullable<int>>("Dave", 88)
Tuple<string, Nullable<int>>("Sam", 91)
Tuple<string, Nullable<int>>("Ed", Nullable())
Tuple<string, Nullable<int>>("Penelope", 82)
Tuple<string, Nullable<int>>("Linda", 99)
Tuple<string, Nullable<int>>("Judith", 84) |]
printfn "The values in unsorted order:"
for score in scores do
printfn $"{score}"
printfn ""
Array.Sort scores
printfn "The values in sorted order:"
for score in scores do
printfn $"{score}"
// The example displays the following output
// The values in unsorted order:
// (Jack, 78)
// (Abbey, 92)
// (Dave, 88)
// (Sam, 91)
// (Ed, )
// (Penelope, 82)
// (Linda, 99)
// (Judith, 84)
//
// The values in sorted order:
// (Abbey, 92)
// (Dave, 88)
// (Ed, )
// (Jack, 78)
// (Judith, 84)
// (Linda, 99)
// (Penelope, 82)
// (Sam, 91)
Module Example
Public Sub Main()
Dim scores() As Tuple(Of String, Nullable(Of Integer)) =
{ New Tuple(Of String, Nullable(Of Integer))("Jack", 78),
New Tuple(Of String, Nullable(Of Integer))("Abbey", 92),
New Tuple(Of String, Nullable(Of Integer))("Dave", 88),
New Tuple(Of String, Nullable(Of Integer))("Sam", 91),
New Tuple(Of String, Nullable(Of Integer))("Ed", Nothing),
New Tuple(Of String, Nullable(Of Integer))("Penelope", 82),
New Tuple(Of String, Nullable(Of Integer))("Linda", 99),
New Tuple(Of String, Nullable(Of Integer))("Judith", 84) }
Console.WriteLine("The values in unsorted order:")
For Each score In scores
Console.WriteLine(score.ToString())
Next
Console.WriteLine()
Array.Sort(scores)
Console.WriteLine("The values in sorted order:")
For Each score In scores
Console.WriteLine(score.ToString())
Next
End Sub
End Module
' The example displays the following output;
' The values in unsorted order:
' (Jack, 78)
' (Abbey, 92)
' (Dave, 88)
' (Sam, 91)
' (Ed, )
' (Penelope, 82)
' (Linda, 99)
' (Judith, 84)
'
' The values in sorted order:
' (Abbey, 92)
' (Dave, 88)
' (Ed, )
' (Jack, 78)
' (Judith, 84)
' (Linda, 99)
' (Penelope, 82)
' (Sam, 91)
注釈
このメンバーは、明示的なインターフェイス メンバーの実装です。 Tuple<T1,T2> インスタンスがIComparable インターフェイスにキャストされている場合にのみ使用できます。
このメソッドは、IComparable.CompareTo クラスのTuple<T1,T2>実装を提供します。 メソッドは直接呼び出すことができますが、最も一般的には、コレクションのメンバーを並べ替えるために、 Array.Sort(Array) や SortedList.Addなどのコレクション並べ替えメソッドの既定のオーバーロードによって呼び出されます。
Caution
Tuple<T1,T2>.IComparable.CompareTo メソッドは、並べ替え操作で使用することを目的としています。 比較の主な目的は、2 つのオブジェクトが等しいかどうかを判断する場合には使用しないでください。 2 つのオブジェクトが等しいかどうかを判断するには、 Equals メソッドを呼び出します。
Tuple<T1,T2>.IComparable.CompareToメソッドは、既定のオブジェクト比較子を使用して各コンポーネントを比較します。