エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Tuple<T1, T2> クラス

2 組 (2 つの要素で構成される組) を表します。

System.Object
  System.Tuple<T1, T2>

名前空間:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

[SerializableAttribute]
public class Tuple<T1, T2> : IStructuralEquatable, IStructuralComparable, 
	IComparable

型パラメーター

T1

組の 1 番目のコンポーネントの型。

T2

組の 2 番目のコンポーネントの型。

Tuple<T1, T2> 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETTuple<T1, T2> Tuple<T1, T2> クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティ汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETItem1現在の Tuple<T1, T2> オブジェクトの 1 番目のコンポーネントの値を取得します。
パブリック プロパティ汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETItem2現在の Tuple<T1, T2> オブジェクトの 2 番目のコンポーネントの値を取得します。
このページのトップへ

  名前説明
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETEquals現在の Tuple<T1, T2> オブジェクトが、指定されたオブジェクトと等しいかどうかを示す値を返します。 (Object.Equals(Object) をオーバーライドします。)
プロテクト メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETFinalize オブジェクトがガベジ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetHashCode現在の Tuple<T1, T2> オブジェクトのハッシュ コードを返します。 (Object.GetHashCode() をオーバーライドします。)
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETToStringこの Tuple<T1, T2> インスタンスの値を表す文字列を返します。 (Object.ToString() をオーバーライドします。)
このページのトップへ

  名前説明
明示的なインターフェイス実装プライベート メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETIComparable.CompareTo現在の Tuple<T1, T2> オブジェクトと指定されたオブジェクトを比較し、並べ替え順序において、現在のオブジェクトの位置が指定されたオブジェクトの前になるか、後ろになるか、同じになるかを示す整数を返します。
明示的なインターフェイス実装プライベート メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETIStructuralComparable.CompareTo指定された比較子を使用して現在の Tuple<T1, T2> オブジェクトと指定されたオブジェクトを比較し、並べ替え順序において、現在のオブジェクトの位置が指定されたオブジェクトの前になるか、後ろになるか、同じになるかを示す整数を返します。
明示的なインターフェイス実装プライベート メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETIStructuralEquatable.Equals指定された比較メソッドに基づいて、現在の Tuple<T1, T2> オブジェクトが指定したオブジェクトと等しいかどうかを示す値を返します。
明示的なインターフェイス実装プライベート メソッド汎用性のあるクラス ライブラリ によるサポートサポート対象: Windows ストア アプリ用 .NETIStructuralEquatable.GetHashCode指定した計算メソッドを使用して、現在の Tuple<T1, T2> オブジェクトのハッシュ コードを計算します。
このページのトップへ

組 (tuple) とは、特定の数およびシーケンスの値を持つデータ構造体です。 Tuple<T1, T2> クラスは、2 組 (2 つの構成要素で構成される組であるペア) を表します。 2 組は KeyValuePair<TKey, TValue> 構造体に似ています。

Tuple<T1, T2> オブジェクトをインスタンス化するには、Tuple<T1, T2> コンストラクターまたは静的 Tuple.Create<T1, T2>(T1, T2) メソッドを呼び出します。 組の構成要素の値を取得するには、読み取り専用の Item1 および Item2 の各インスタンス プロパティを使用します。

一般に、組には次の 4 種類の利用法があります。

  • 1 つのデータセットを表現するため。 たとえば、データベースのレコードを組で表現し、そのレコードの各フィールドを組の構成要素で表現できます。

  • データセットのアクセスと操作を容易にするため。 次の例では、学生の名前と各学生のテストの得点を格納している Tuple<T1, T2> オブジェクトの配列を定義します。 次に、この配列を反復処理して、テストの平均点を計算します。

    
    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) };
          int number;
          double mean = ComputeMean(scores, out number);
          Console.WriteLine("Average test score: {0:N2} (n={1})", mean, number);
       }
    
       private static double ComputeMean(Tuple<string, Nullable<int>>[] scores, out int n) 
       {
          n = 0;      
          int sum = 0;
          foreach (var score in scores)
          {
             if (score.Item2.HasValue)
             { 
                n += 1;
                sum += score.Item2.Value;
             }
          }     
          if (n > 0)
             return sum / (double) n;
          else
             return 0;
       }
    }
    // The example displays the following output:
    //       Average test score: 88 (n=7)
    
    
    
  • out パラメーター (C# の場合) または ByRef パラメーター (Visual Basic の場合) を使用せずに、メソッドから複数の値を返すため。 たとえば、次の例では、Tuple<T1, T2> オブジェクトを使用して、整数除算の商と剰余を返します。

    
    using System;
    
    public class Class1
    {
       public static void Main()
       {
          int dividend, divisor;
          Tuple<int, int> result;
    
          dividend = 136945; divisor = 178;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
    
          dividend = Int32.MaxValue; divisor = -2073;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
       }
    
       private static Tuple<int, int> IntegerDivide(int dividend, int divisor)
       {
          try {
             int remainder;
             int quotient = Math.DivRem(dividend, divisor, out remainder);
             return new Tuple<int, int>(quotient, remainder);
          }   
          catch (DivideByZeroException) {
             return null;
          }      
       }
    }
    // The example displays the following output:
    //       136945 \ 178 = 769, remainder 63
    //       2147483647 \ -2073 = -1035930, remainder 757
    
    
    
  • 1 つのパラメーターを使用してメソッドに複数の値を渡すため。 たとえば、Thread.Start(Object) メソッドには、起動時にスレッドが実行するメソッドに 1 つの値を渡すために使用できる 1 つのパラメーターがあります。 このメソッドの引数として Tuple<T1, T2> オブジェクトを指定すると、スレッドの起動ルーチンに 2 つのデータ項目を渡すことができます。

.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4

.NET Framework Client Profile

サポート対象 : 4

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

コミュニティの追加

追加
表示:
© 2014 Microsoft