この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Tuple<T1, T2> クラス

 

公開日: 2016年11月

2 つ組、すなわちペアを表します。

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

System.Object
  System.Tuple<T1, T2>

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

型パラメーター

T1

組の最初のコンポーネントの型。

T2

タプルの 2 番目のコンポーネントの型。

名前説明
System_CAPS_pubmethodTuple<T1, T2>(T1, T2)

Tuple<T1, T2> クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertyItem1

現在の値を取得Tuple<T1, T2>オブジェクトの最初のコンポーネントです。

System_CAPS_pubpropertyItem2

現在の値を取得 Tuple<T1, T2> オブジェクトの 2 番目のコンポーネントです。

名前説明
System_CAPS_pubmethodEquals(Object)

示す値を返すかどうか、現在 Tuple<T1, T2> オブジェクトが、指定されたオブジェクトと等しい。(Object.Equals(Object) をオーバーライドします。)

System_CAPS_protmethodFinalize()

オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)

System_CAPS_pubmethodGetHashCode()

現在のハッシュ コードを返す Tuple<T1, T2> オブジェクトです。(Object.GetHashCode() をオーバーライドします。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_pubmethodToString()

この Tuple<T1, T2> インスタンスの値を表す文字列を返します。(Object.ToString() をオーバーライドします。)

名前説明
System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralComparable.CompareTo(Object, IComparer)

現在の比較 Tuple<T1, T2> オブジェクトが指定された比較子を使用して、指定したオブジェクトと現在のオブジェクトが前に、後で、または並べ替え順序において、指定したオブジェクトと同じ位置にあるかどうかを示す整数を返します。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.Equals(Object, IEqualityComparer)

示す値を返すかどうか、現在 Tuple<T1, T2> オブジェクトが指定した比較方法に基づいて、指定されたオブジェクトと等しい。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.GetHashCode(IEqualityComparer)

現在のハッシュ コードを計算 Tuple<T1, T2> オブジェクトの指定された計算方法を使用しています。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIComparable.CompareTo(Object)

現在の Tuple<T1, T2> オブジェクトと指定したオブジェクトを比較して、現在のオブジェクトが、並べ替え順序において、指定したオブジェクトの前後または同じ位置のいずれにあるかを示す整数を返します。

組は、特定の数と一連の値を持つデータ構造です。 Tuple<T1, T2>クラスは、2 つ組、または 2 つのコンポーネントを持つタプルのペアを表します。 2 組がに似ていますが、KeyValuePair<TKey, TValue>構造体。

インスタンス化することができます、Tuple<T1, T2>を呼び出して、オブジェクト、Tuple<T1, T2>コンス トラクターまたは静的なTuple.Create<T1, T2>(T1, T2)メソッドです。 タプルの要素の値を取得するには、読み取り専用を使用してItem1Item2インスタンス プロパティです。

組は、4 つの方法でよく使用されます。

  • 単一のデータのセットを表します。 たとえば、組は、データベース内のレコードを表すことができ、そのコンポーネントがそのレコードのフィールドを表すことができます。

  • 簡単にアクセスしたり、操作、データ セットを提供します。 次の例の配列を定義する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 つの項目を含む、スレッドのスタートアップ ルーチンを指定することができます。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
4.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
4.0 以降で使用可能
Windows Phone Silverlight
8.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

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

トップに戻る
表示: