Tuple<T1,T2,T3> Tuple<T1,T2,T3> Tuple<T1,T2,T3> Tuple<T1,T2,T3> Class

定義

3 つ組、すなわちトリプルを表します。 Represents a 3-tuple, or triple.

generic <typename T1, typename T2, typename T3>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
[Serializable]
public class Tuple<T1,T2,T3> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
Public Class Tuple(Of T1, T2, T3)
Implements IComparable, IStructuralComparable, IStructuralEquatable
型パラメーター
T1

組の 1 番目のコンポーネントの型。 The type of the tuple's first component.

T2

組の 2 番目のコンポーネントの型。 The type of the tuple's second component.

T3

組の 3 番目のコンポーネントの型。 The type of the tuple's third component.

継承
Tuple<T1,T2,T3>Tuple<T1,T2,T3>Tuple<T1,T2,T3>Tuple<T1,T2,T3>
属性
SerializableAttribute
実装

注釈

タプルとは、特定の数と値のシーケンスを持つデータ構造です。A tuple is a data structure that has a specific number and sequence of values. Tuple<T1,T2,T3>クラスは、3 タプルを表します。 または、3 つのコンポーネントを持つタプルである、3 倍になります。The Tuple<T1,T2,T3> class represents a 3-tuple, or triple, which is a tuple that has three components.

インスタンス化することができます、Tuple<T1,T2,T3>オブジェクトを呼び出すことによって、Tuple<T1,T2,T3>コンス トラクターまたは静的なTuple.Create<T1,T2,T3>(T1, T2, T3)メソッド。You can instantiate a Tuple<T1,T2,T3> object by calling either the Tuple<T1,T2,T3> constructor or the static Tuple.Create<T1,T2,T3>(T1, T2, T3) method. タプルの要素の値を取得するには、読み取り専用を使用してItem1Item2、およびItem3インスタンスのプロパティ。You can retrieve the values of the tuple's components by using the read-only Item1, Item2, and Item3 instance properties.

タプルは、4 つの方法でよく使用されます。Tuples are commonly used in four different ways:

  • 単一のデータ セットを表します。To represent a single set of data. たとえば、タプルは、データベースのレコードを表すことができ、そのコンポーネントは、レコードの個々 のフィールドを表すことができます。For example, a tuple can represent a database record, and its components can represent individual fields of the record.

  • 簡単にアクセスして、データ セットの操作を提供します。To provide easy access to, and manipulation of, a data set. 次の例の配列を定義するTuple<T1,T2,T3>学生、そのテストの平均スコア、およびテストの数の名前を格納するオブジェクト。The following example defines an array of Tuple<T1,T2,T3> objects that contain the names of students, their average test scores, and the number of tests taken. 配列が渡される、ComputeStatisticsメソッドで、平均と標準偏差のテストの点数を計算します。The array is passed to the ComputeStatistics method, which calculates the mean and standard deviation of the test scores.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, double, int>[] scores = 
                        { Tuple.Create("Jack", 78.8, 8),
                          Tuple.Create("Abbey", 92.1, 9), 
                          Tuple.Create("Dave", 88.3, 9),
                          Tuple.Create("Sam", 91.7, 8), 
                          Tuple.Create("Ed", 71.2, 5),
                          Tuple.Create("Penelope", 82.9, 8),
                          Tuple.Create("Linda", 99.0, 9),
                          Tuple.Create("Judith", 84.3, 9) };
          var result = ComputeStatistics(scores);
          Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})", 
                            result.Item2, result.Item3, result.Item1);
       }
    
       private static Tuple<int, double, double> ComputeStatistics(Tuple<string, double, int>[] scores) 
       {
          int n = 0;
          double sum = 0;
    
          // Compute the mean.
          foreach (var score in scores)
          {
             n += score.Item3;
             sum += score.Item2 * score.Item3;
          }
          double mean = sum / n;
          
          // Compute the standard deviation.
          double ss = 0;
          foreach (var score in scores)
          {
             ss = Math.Pow(score.Item2 - mean, 2);
          }
          double sd = Math.Sqrt(ss/scores.Length);
          return Tuple.Create(scores.Length, mean, sd);
       }
    }
    // The example displays the following output:
    //       Mean score: 87.02 (SD=0.96) (n=8)
    
    Module Example
       Public Sub Main()
          Dim scores() = 
                          { Tuple.Create("Jack", 78.8, 8),
                            Tuple.Create("Abbey", 92.1, 9), 
                            Tuple.Create("Dave", 88.3, 9),
                            Tuple.Create("Sam", 91.7, 8), 
                            Tuple.Create("Ed", 71.2, 5),
                            Tuple.Create("Penelope", 82.9, 8),
                            Tuple.Create("Linda", 99.0, 9),
                            Tuple.Create("Judith", 84.3, 9) }
          Dim result = ComputeStatistics(scores)
          Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})", 
                            result.Item2, result.Item3, result.Item1)
       End Sub
       
       Private Function ComputeStatistics(scores() As Tuple(Of String, Double, Integer)) _ 
                                    As Tuple(Of Integer, Double, Double)
          Dim n As Integer = 0      
          Dim sum As Double = 0
          
          ' Compute the mean.
          For Each score In scores
             n+= score.Item3 
             sum += score.Item2 * score.Item3
          Next     
          Dim mean As Double = sum / n
    
          ' Compute the standard deviation.
          Dim ss As Double = 0
          For Each score In scores
             ss = Math.Pow(score.Item2 - mean, 2)
          Next
          Dim sd As Double = Math.Sqrt(ss/scores.Length)
          Return Tuple.Create(scores.Length, mean, sd)
       End Function
    End Module
    ' The example displays the following output:
    '       Mean score: 87.02 (SD=0.96) (n=8)
    
  • 使用せず、メソッドから複数の値を返すoutパラメーター (c#) またはByRef(Visual Basic) でのパラメーター。To return multiple values from a method without the use of out parameters (in C#) or ByRef parameters (in Visual Basic). たとえば、前の例では、その概要テスト スコア統計情報を返しますで、Tuple<T1,T2,T3>オブジェクト。For example, the previous example returns its summary test score statistics in a Tuple<T1,T2,T3> object.

  • 1 つのパラメーターを使用してメソッドには、複数値を渡す。To pass multiple values to a method through a single parameter. たとえば、Thread.Start(Object)メソッドが 1 つのパラメーターの起動時にスレッドを実行する方法の 1 つの値を指定することができます。For example, the Thread.Start(Object) method has a single parameter that lets you supply one value to the method that the thread executes at startup. 指定した場合、Tuple<T1,T2,T3>メソッドの引数としてオブジェクトのデータの 3 つの項目を含む、スレッドのスタートアップ ルーチンを指定することができます。If you supply a Tuple<T1,T2,T3> object as the method argument, you can supply the thread’s startup routine with three items of data.

コンストラクター

Tuple<T1,T2,T3>(T1, T2, T3) Tuple<T1,T2,T3>(T1, T2, T3) Tuple<T1,T2,T3>(T1, T2, T3) Tuple<T1,T2,T3>(T1, T2, T3)

Tuple<T1,T2,T3> クラスの新しいインスタンスを初期化します。 Initializes a new instance of the Tuple<T1,T2,T3> class.

プロパティ

Item1 Item1 Item1 Item1

現在の Tuple<T1,T2,T3> オブジェクトの 1 番目のコンポーネントの値を取得します。 Gets the value of the current Tuple<T1,T2,T3> object's first component.

Item2 Item2 Item2 Item2

現在の Tuple<T1,T2,T3> オブジェクトの 2 番目のコンポーネントの値を取得します。 Gets the value of the current Tuple<T1,T2,T3> object's second component.

Item3 Item3 Item3 Item3

現在の Tuple<T1,T2,T3> オブジェクトの 3 番目のコンポーネントの値を取得します。 Gets the value of the current Tuple<T1,T2,T3> object's third component.

方法

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

現在の Tuple<T1,T2,T3> オブジェクトが、指定されたオブジェクトと等しいかどうかを示す値を返します。 Returns a value that indicates whether the current Tuple<T1,T2,T3> object is equal to a specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

現在の Tuple<T1,T2,T3> オブジェクトのハッシュ コードを返します。 Returns the hash code for the current Tuple<T1,T2,T3> object.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。 Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

この Tuple<T1,T2,T3> インスタンスの値を表す文字列を返します。 Returns a string that represents the value of this Tuple<T1,T2,T3> instance.

明示的なインターフェイスの実装

IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object)

現在の Tuple<T1,T2,T3> オブジェクトと指定したオブジェクトを比較して、現在のオブジェクトが、並べ替え順序において、指定したオブジェクトの前後または同じ位置のいずれにあるかを示す整数を返します。 Compares the current Tuple<T1,T2,T3> object to a specified object and returns an integer that indicates whether the current object is before, after, or in the same position as the specified object in the sort order.

IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer)

指定された比較子を使用して現在の Tuple<T1,T2,T3> オブジェクトと指定されたオブジェクトを比較し、並べ替え順序において、現在のオブジェクトの位置が指定されたオブジェクトの前になるか、後ろになるか、同じになるかを示す整数を返します。 Compares the current Tuple<T1,T2,T3> object to a specified object by using a specified comparer, and returns an integer that indicates whether the current object is before, after, or in the same position as the specified object in the sort order.

IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer)

指定された比較メソッドに基づいて、現在の Tuple<T1,T2,T3> オブジェクトが指定したオブジェクトと等しいかどうかを示す値を返します。 Returns a value that indicates whether the current Tuple<T1,T2,T3> object is equal to a specified object based on a specified comparison method.

IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer)

指定した計算メソッドを使用して、現在の Tuple<T1,T2,T3> オブジェクトのハッシュ コードを計算します。 Calculates the hash code for the current Tuple<T1,T2,T3> object by using a specified computation method.

ITuple.Item[Int32] ITuple.Item[Int32] ITuple.Item[Int32] ITuple.Item[Int32]

指定した Tuple 要素の値を取得します。 Gets the value of the specified Tuple element.

ITuple.Length ITuple.Length ITuple.Length ITuple.Length

Tuple にある要素の数を取得します。 Gets the number of elements in the Tuple.

適用対象

こちらもご覧ください