Tuple<T1,T2,T3,T4,T5,T6,T7> クラス

定義

7 つ組、すなわちセプチュプルを表します。

generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
    interface ITuple
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
    interface ITuple
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple

型パラメーター

T1

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

T2

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

T3

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

T4

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

T5

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

T6

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

T7

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

継承
Tuple<T1,T2,T3,T4,T5,T6,T7>
属性
実装

注釈

タプルは、特定の数と値のシーケンスを持つデータ構造です。 このクラスは Tuple<T1,T2,T3,T4,T5,T6,T7> 、7 つのコンポーネントを持つタプルである 7 タプル (セプトゥプラ) を表します。

オブジェクトをインスタンス化するには、Tuple<T1,T2,T3,T4,T5,T6,T7>静的メソッドまたは静的Tuple.Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7)メソッドのいずれかをTuple<T1,T2,T3,T4,T5,T6,T7>呼び出します。 タプルのコンポーネントの値は、読み取り専用Item1、、、、Item3Item5Item4Item6インスタンスのプロパティをItem7使用して取得できます。 Item2

タプルは、一般的に次の 4 つの方法で使用されます。

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

  • データ セットへの簡単なアクセスと操作を提供します。 次の例では、 Tuple<T1,T2,T3,T4,T5,T6,T7> 1950 年から 2000 年までの国勢調査ごとにニューヨーク市の人口データを含むオブジェクトを定義します。 セプトゥプラは、国勢調査間の年間変化率と、60年間の年間変化率を計算する方法に渡されます ComputePopulationChange

    using System;
    
    public class Example
    {
       public static void Main()
       {
          // Get population data for New York City, 1950-2000.
          var population = Tuple.Create("New York", 7891957, 7781984, 
                                        7894862, 7071639, 7322564, 8008278);
          var rate = ComputePopulationChange(population);
          // Display results.
          Console.WriteLine("Population Change, {0}, 1950-2000\n", population.Item1);
          Console.WriteLine("Year      {0,10} {1,9}", "Population", "Annual Rate");
          Console.WriteLine("1950      {0,10:N0} {1,11}", population.Item2, "NA");
          Console.WriteLine("1960      {0,10:N0} {1,11:P2}", population.Item3, rate.Item2/10);
          Console.WriteLine("1970      {0,10:N0} {1,11:P2}", population.Item4, rate.Item3/10);
          Console.WriteLine("1980      {0,10:N0} {1,11:P2}", population.Item5, rate.Item4/10);
          Console.WriteLine("1990      {0,10:N0} {1,11:P2}", population.Item6, rate.Item5/10);
          Console.WriteLine("2000      {0,10:N0} {1,11:P2}", population.Item7, rate.Item6/10);
          Console.WriteLine("1950-2000 {0,10:N0} {1,11:P2}", "", rate.Item7/50);
       }
    
       private static Tuple<string, double, double, double, double, double, double> 
            ComputePopulationChange(
               Tuple<string, int, int, int, int, int, int> data)  
       {           
          var rate = Tuple.Create(data.Item1, 
                           (double)(data.Item3 - data.Item2)/data.Item2, 
                           (double)(data.Item4 - data.Item3)/data.Item3, 
                           (double)(data.Item5 - data.Item4)/data.Item4, 
                           (double)(data.Item6 - data.Item5)/data.Item5,
                           (double)(data.Item7 - data.Item6)/data.Item6,
                           (double)(data.Item7 - data.Item2)/data.Item2 );
          return rate;
       }           
    }
    // The example displays the following output:
    //       Population Change, New York, 1950-2000
    //       
    //       Year      Population Annual Rate
    //       1950       7,891,957          NA
    //       1960       7,781,984     -0.14 %
    //       1970       7,894,862      0.15 %
    //       1980       7,071,639     -1.04 %
    //       1990       7,322,564      0.35 %
    //       2000       8,008,278      0.94 %
    //       1950-2000                 0.03 %
    
    open System
    
    let computePopulationChange (data: Tuple<string, int, int, int, int, int, int>) =  
        Tuple.Create(data.Item1, 
                     double (data.Item3 - data.Item2) / double data.Item2, 
                     double (data.Item4 - data.Item3) / double data.Item3, 
                     double (data.Item5 - data.Item4) / double data.Item4, 
                     double (data.Item6 - data.Item5) / double data.Item5,
                     double (data.Item7 - data.Item6) / double data.Item6,
                     double (data.Item7 - data.Item2) / double data.Item2)
    
    // Get population data for New York City, 1950-2000.
    let population = 
        Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
    let rate = computePopulationChange population
    // Display results.
    printfn $"Population Change, {population.Item1}, 1950-2000\n"
    printfn $"""Year      {"Population",10} {"Annual Rate",9}"""
    printfn $"""1950      {population.Item2,10:N0} {"NA",11}"""
    printfn $"1960      {population.Item3,10:N0} {rate.Item2 / 10.,11:P2}"
    printfn $"1970      {population.Item4,10:N0} {rate.Item3 / 10.,11:P2}" 
    printfn $"1980      {population.Item5,10:N0} {rate.Item4 / 10.,11:P2}" 
    printfn $"1990      {population.Item6,10:N0} {rate.Item5 / 10.,11:P2}" 
    printfn $"2000      {population.Item7,10:N0} {rate.Item6 / 10.,11:P2}" 
    printfn $"""1950-2000 {"",10:N0} {rate.Item7 / 50.,11:P2}"""
    
    // The example displays the following output:
    //       Population Change, New York, 1950-2000
    //       
    //       Year      Population Annual Rate
    //       1950       7,891,957          NA
    //       1960       7,781,984     -0.14 %
    //       1970       7,894,862      0.15 %
    //       1980       7,071,639     -1.04 %
    //       1990       7,322,564      0.35 %
    //       2000       8,008,278      0.94 %
    //       1950-2000                 0.03 %
    
    Module Example
       Public Sub Main()
          ' Get population data for New York City, 1950-2000.
          Dim population = Tuple.Create("New York", 7891957, 7781984, 
                                        7894862, 7071639, 7322564, 8008278)
          Dim rate = ComputePopulationChange(population)      
          ' Display results.
          Console.WriteLine("Population Change, {0}, 1950-2000", population.Item1)
          Console.WriteLine()
          Console.WriteLine("Year      {0,10} {1,9}", "Population", "Annual Rate")
          Console.WriteLine("1950      {0,10:N0} {1,11}", population.Item2, "NA")
          Console.WriteLine("1960      {0,10:N0} {1,11:P2}", population.Item3, rate.Item2/10)
          Console.WriteLine("1970      {0,10:N0} {1,11:P2}", population.Item4, rate.Item3/10)
          Console.WriteLine("1980      {0,10:N0} {1,11:P2}", population.Item5, rate.Item4/10)
          Console.WriteLine("1990      {0,10:N0} {1,11:P2}", population.Item6, rate.Item5/10)
          Console.WriteLine("2000      {0,10:N0} {1,11:P2}", population.Item7, rate.Item6/10)
          Console.WriteLine("1950-2000 {0,10:N0} {1,11:P2}", "", rate.Item7/50)
       End Sub
       
          ' Compute rate of population change by decade and overall.
       Private Function ComputePopulationChange(data As Tuple(Of String, Integer, Integer, Integer, Integer, Integer, Integer)) _ 
               As Tuple(Of String, Double, Double, Double, Double, Double, Double)
          Dim rate = Tuple.Create( data.Item1, 
                           (data.Item3 - data.Item2)/data.Item2, 
                           (data.Item4 - data.Item3)/data.Item3, 
                           (data.Item5 - data.Item4)/data.Item4, 
                           (data.Item6 - data.Item5)/data.Item5,
                           (data.Item7 - data.Item6)/data.Item6,
                           (data.Item7 - data.Item2)/data.Item2 )
          Return rate
       End Function           
    End Module
    ' The example displays the following output:
    '       Population Change, New York, 1950-2000
    '       
    '       Year      Population Annual Rate
    '       1950       7,891,957          NA
    '       1960       7,781,984     -0.14 %
    '       1970       7,894,862      0.15 %
    '       1980       7,071,639     -1.04 %
    '       1990       7,322,564      0.35 %
    '       2000       8,008,278      0.94 %
    '       1950-2000                 0.03 %
    
  • パラメーター (C# では) またはByRefパラメーター (Visual Basic) を使用outせずに、メソッドから複数の値を返すには。 たとえば、前の例では、計算された統計情報と市区町村名をオブジェクトに Tuple<T1,T2,T3,T4,T5,T6,T7> 返します。

  • 1 つのパラメーターを使用して複数の値をメソッドに渡す。 たとえば、 Thread.Start(Object) このメソッドには、起動時にスレッドが実行するメソッドに 1 つの値を指定できる 1 つのパラメーターがあります。 メソッド引数としてオブジェクトを Tuple<T1,T2,T3,T4,T5,T6,T7> 指定する場合は、スレッドのスタートアップ ルーチンに 7 つのデータ項目を指定できます。

コンストラクター

Tuple<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7)

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

プロパティ

Item1

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 1 番目のコンポーネントの値を取得します。

Item2

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 2 番目のコンポーネントの値を取得します。

Item3

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 3 番目のコンポーネントの値を取得します。

Item4

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 4 番目のコンポーネントの値を取得します。

Item5

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 5 番目のコンポーネントの値を取得します。

Item6

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 6 番目のコンポーネントの値を取得します。

Item7

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトの 7 番目のコンポーネントの値を取得します。

メソッド

Equals(Object)

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトが、指定されたオブジェクトと等しいかどうかを示す値を返します。

GetHashCode()

現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトのハッシュ コードを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

この Tuple<T1,T2,T3,T4,T5,T6,T7> インスタンスの値を表す文字列を返します。

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

IComparable.CompareTo(Object)

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

IStructuralComparable.CompareTo(Object, IComparer)

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

IStructuralEquatable.Equals(Object, IEqualityComparer)

指定された比較メソッドに基づいて、現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトが指定したオブジェクトと等しいかどうかを示す値を返します。

IStructuralEquatable.GetHashCode(IEqualityComparer)

指定した計算メソッドを使用して、現在の Tuple<T1,T2,T3,T4,T5,T6,T7> オブジェクトのハッシュ コードを計算します。

ITuple.Item[Int32]

指定した Tuple 要素の値を取得します。

ITuple.Length

Tuple にある要素の数を取得します。

拡張メソッド

Deconstruct<T1,T2,T3,T4,T5,T6,T7>(Tuple<T1,T2,T3,T4,T5,T6,T7>, T1, T2, T3, T4, T5, T6, T7)

7 要素を持つタプルを別個の変数に分解します。

ToValueTuple<T1,T2,T3,T4,T5,T6,T7>(Tuple<T1,T2,T3,T4,T5,T6,T7>)

Tuple クラスのインスタンスを ValueTuple 構造体のインスタンスに変換します。

適用対象

こちらもご覧ください