Tuple<T1,T2>.IComparable.CompareTo(Object) メソッド

定義

現在の 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

現在のインスタンスと比較するオブジェクト。

戻り値

Int32

並べ替え順序における、このインスタンスと obj の相対位置を示す符号付き整数値 (次の表を参照)。

説明
負の整数 このインスタンスの位置が obj よりも前です。
ゼロ このインスタンスと obj の位置は、並べ替え順序において同じです。
正の整数 このインスタンスの位置が obj よりも後ろです。

実装

例外

objTuple<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コレクションの並べ替えメソッドの既定のオーバーロードによって呼び出されます。

注意事項

この Tuple<T1,T2>.IComparable.CompareTo メソッドは、並べ替え操作で使用することを目的としています。 比較の主な目的は、2 つのオブジェクトが等しいかどうかを判断する場合には使用しないでください。 2 つのオブジェクトが等しいかどうかを判断するには、メソッドを Equals 呼び出します。

このメソッドでは Tuple<T1,T2>.IComparable.CompareTo 、既定のオブジェクト比較子を使用して各コンポーネントを比較します。

適用対象

こちらもご覧ください