Tuple<T1,T2,T3,T4,T5> クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
5つ 組、すなわちクインチュープルを表します。
generic <typename T1, typename T2, typename T3, typename T4, typename T5>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3, typename T4, typename T5>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3,T4,T5> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4,T5> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5> = class
interface IStructuralComparable
interface IStructuralEquatable
interface IComparable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5> = class
interface IStructuralComparable
interface IStructuralEquatable
interface IComparable
interface ITuple
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5> = class
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5> = class
interface IStructuralEquatable
interface IStructuralComparable
interface IComparable
interface ITuple
Public Class Tuple(Of T1, T2, T3, T4, T5)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3, T4, T5)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple
型パラメーター
- T1
組の 1 番目のコンポーネントの型。
- T2
組の 2 番目のコンポーネントの型。
- T3
組の 3 番目のコンポーネントの型。
- T4
組の 4 番目のコンポーネントの型。
- T5
組の 5 番目のコンポーネントの型。
- 継承
-
Tuple<T1,T2,T3,T4,T5>
- 属性
- 実装
注釈
タプルは、特定の数値と値のシーケンスを持つデータ構造です。 クラスは Tuple<T1,T2,T3,T4,T5> 5 タプル (5 組) を表します。これは、5 つのコンポーネントを持つタプルです。
コンストラクターまたは静的Tuple.Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5)メソッドをTuple<T1,T2,T3,T4,T5>Tuple<T1,T2,T3,T4,T5>呼び出すことで、オブジェクトをインスタンス化できます。 タプルのコンポーネントの値を取得するには、読み取り専用Item1、、Item4Item2Item3および Item5 インスタンスのプロパティを使用します。
タプルは、一般的に次の 4 つの異なる方法で使用されます。
1 つのデータ セットを表す。 たとえば、タプルはデータベース レコードを表し、そのコンポーネントはレコードの個々のフィールドを表すことができます。
データ セットへの簡単なアクセスと操作を提供します。 次の例では、アメリカン フットボールのランニング バックの Tuple<T1,T2,T3,T4,T5> 名前、プレイしたゲームの数、それらのゲーム中に獲得したキャリーの数、合計ヤード数、タッチダウン数を含むオブジェクトの配列を定義します。 配列は メソッドに
ComputeStatistics
渡され、各ランニング バックの 1 ゲームあたりのキャリー数、1 ゲームあたりの平均ヤード数、キャリーあたりの平均ヤード数、試行あたりの平均タッチダウン数が計算されます。using System; using System.Collections.Generic; public class Example { public static void Main() { // Organization of runningBacks 5-tuple: // Component 1: Player name // Component 2: Number of games played // Component 3: Number of attempts (carries) // Component 4: Number of yards gained // Component 5: Number of touchdowns Tuple<string, int, int, int, int>[] runningBacks = { Tuple.Create("Payton, Walter", 190, 3838, 16726, 110), Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99), Tuple.Create("Brown, Jim", 118, 2359, 12312, 106), Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90), Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) }; // Calculate statistics. // Organization of runningStats 5-tuple: // Component 1: Player name // Component 2: Number of attempts per game // Component 3: Number of yards per game // Component 4: Number of yards per attempt // Component 5: Number of touchdowns per attempt Tuple<string, double, double, double, double>[] runningStats = ComputeStatistics(runningBacks); // Display the result. Console.WriteLine("{0,-16} {1,5} {2,6} {3,7} {4,7} {5,7} {6,7} {7,5} {8,7}\n", "Name", "Games", "Att", "Att/Gm", "Yards", "Yds/Gm", "Yds/Att", "TD", "TD/Att"); for (int ctr = 0; ctr < runningBacks.Length; ctr++) Console.WriteLine("{0,-16} {1,5} {2,6:N0} {3,7:N1} {4,7:N0} {5,7:N1} {6,7:N2} {7,5} {8,7:N3}\n", runningBacks[ctr].Item1, runningBacks[ctr].Item2, runningBacks[ctr].Item3, runningStats[ctr].Item2, runningBacks[ctr].Item4, runningStats[ctr].Item3, runningStats[ctr].Item4, runningBacks[ctr].Item5, runningStats[ctr].Item5); } private static Tuple<string, double, double, double, double>[] ComputeStatistics( Tuple<string, int, int, int, int>[] players) { Tuple<string, double, double, double, double> result; var list = new List<Tuple<string, double, double, double, double>>(); foreach (var player in players) { // Create result object containing player name and statistics. result = Tuple.Create(player.Item1, player.Item3/((double)player.Item2), player.Item4/((double)player.Item2), player.Item4/((double)player.Item3), player.Item5/((double)player.Item3)); list.Add(result); } return list.ToArray(); } } // The example displays the following output: // Name Games Att Att/Gm Yards Yds/Gm Yds/Att TD TD/Att // // Payton, Walter 190 3,838 20.2 16,726 88.0 4.36 110 0.029 // // Sanders, Barry 153 3,062 20.0 15,269 99.8 4.99 99 0.032 // // Brown, Jim 118 2,359 20.0 12,312 104.3 5.22 106 0.045 // // Dickerson, Eric 144 2,996 20.8 13,259 92.1 4.43 90 0.030 // // Faulk, Marshall 176 2,836 16.1 12,279 69.8 4.33 100 0.035
open System let computeStatistics (players: Tuple<string, int, int, int, int>[]) = [| for player in players do // Create result object containing player name and statistics. Tuple.Create(player.Item1, double player.Item3 / double player.Item2, double player.Item4 / double player.Item2, double player.Item4 / double player.Item3, double player.Item5 / double player.Item3) |] // Organization of runningBacks 5-tuple: // Component 1: Player name // Component 2: Number of games played // Component 3: Number of attempts (carries) // Component 4: Number of yards gained // Component 5: Number of touchdowns let runningBacks = [| Tuple.Create("Payton, Walter", 190, 3838, 16726, 110) Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99) Tuple.Create("Brown, Jim", 118, 2359, 12312, 106) Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90) Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) |] // Calculate statistics. // Organization of runningStats 5-tuple: // Component 1: Player name // Component 2: Number of attempts per game // Component 3: Number of yards per game // Component 4: Number of yards per attempt // Component 5: Number of touchdowns per attempt let runningStats = computeStatistics runningBacks // Display the result. printfn "%-16s %5s %6s %7s %7s %7s %7s %5s %7s\n" "Name" "Games" "Att" "Att/Gm" "Yards" "Yds/Gm" "Yds/Att" "TD" "TD/Att" for i = 0 to runningBacks.Length - 1 do printfn $"{runningBacks[i].Item1,-16} {runningBacks[i].Item2,5} {runningBacks[i].Item3,6:N0} {runningBacks[i].Item2,7:N1} {runningBacks[i].Item4,7:N0} {runningBacks[i].Item3,7:N1} {runningBacks[i].Item4,7:N2} {runningBacks[i].Item5,5} {runningBacks[i].Item5,7:N3}\n" // The example displays the following output: // Name Games Att Att/Gm Yards Yds/Gm Yds/Att TD TD/Att // // Payton, Walter 190 3,838 20.2 16,726 88.0 4.36 110 0.029 // // Sanders, Barry 153 3,062 20.0 15,269 99.8 4.99 99 0.032 // // Brown, Jim 118 2,359 20.0 12,312 104.3 5.22 106 0.045 // // Dickerson, Eric 144 2,996 20.8 13,259 92.1 4.43 90 0.030 // // Faulk, Marshall 176 2,836 16.1 12,279 69.8 4.33 100 0.035
Imports System.Collections.Generic Module Example Public Sub Main() ' Organization of runningBacks 5-tuple: ' Component 1: Player name ' Component 2: Number of games played ' Component 3: Number of attempts (carries) ' Component 4: Number of yards gained ' Component 5: Number of touchdowns Dim runningBacks() = { Tuple.Create("Payton, Walter", 190, 3838, 16726, 110), Tuple.Create("Sanders, Barry", 153, 3062, 15269, 99), Tuple.Create("Brown, Jim", 118, 2359, 12312, 106), Tuple.Create("Dickerson, Eric", 144, 2996, 13259, 90), Tuple.Create("Faulk, Marshall", 176, 2836, 12279, 100) } ' Calculate statistics. ' Organization of runningStats 5-tuple: ' Component 1: Player name ' Component 2: Number of attempts per game ' Component 3: Number of yards per game ' Component 4: Number of yards per attempt ' Component 5: Number of touchdowns per attempt Dim runningStats() = ComputeStatistics(runningBacks) ' Display the result. Console.WriteLine("{0,-16} {1,5} {2,6} {3,7} {4,7} {5,7} {6,7} {7,5} {8,7}", "Name", "Games", "Att", "Att/Gm", "Yards", "Yds/Gm", "Yds/Att", "TD", "TD/Att") Console.WriteLine() For ctr As Integer = 0 To runningBacks.Length - 1 Console.WriteLine("{0,-16} {1,5} {2,6:N0} {3,7:N1} {4,7:N0} {5,7:N1} {6,7:N2} {7,5} {8,7:N3}", runningBacks(ctr).Item1, runningBacks(ctr).Item2, runningBacks(ctr).Item3, runningStats(ctr).Item2, runningBacks(ctr).Item4, runningStats(ctr).Item3, runningStats(ctr).Item4, runningBacks(ctr).Item5, runningStats(ctr).Item5) Console.WriteLine() Next End Sub Private Function ComputeStatistics(players() As Tuple(Of String, Integer, Integer, Integer, Integer)) _ As Tuple(Of String, Double, Double, Double, Double)() Dim result As Tuple(Of String, Double, Double, Double, Double) Dim list As New List(Of Tuple(Of String, Double, Double, Double, Double))() For Each player In players ' Create result object containing player name and statistics. result = Tuple.Create(player.Item1, player.Item3/player.Item2, player.Item4/player.Item2, player.Item4/player.Item3, player.Item5/player.Item3) list.Add(result) Next Return list.ToArray() End Function End Module ' The example displays the following output: ' Name Games Att Att/Gm Yards Yds/Gm Yds/Att TD TD/Att ' ' Payton, Walter 190 3,838 20.2 16,726 88.0 4.36 110 0.029 ' ' Sanders, Barry 153 3,062 20.0 15,269 99.8 4.99 99 0.032 ' ' Brown, Jim 118 2,359 20.0 12,312 104.3 5.22 106 0.045 ' ' Dickerson, Eric 144 2,996 20.8 13,259 92.1 4.43 90 0.030 ' ' Faulk, Marshall 176 2,836 16.1 12,279 69.8 4.33 100 0.035
パラメーター (C#では) または
ByRef
パラメーター (Visual Basic では) を使用out
せずにメソッドから複数の値を返すには。 たとえば、前の例では、計算された統計情報とプレーヤーの名前をオブジェクトの Tuple<T1,T2,T3,T4,T5> 配列で返します。1 つのパラメーターを使用して複数の値をメソッドに渡す。 たとえば、 Thread.Start(Object) メソッドには、起動時にスレッドが実行するメソッドに 1 つの値を指定できる 1 つのパラメーターがあります。 メソッド引数として オブジェクトを Tuple<T1,T2,T3,T4,T5> 指定した場合は、スレッドのスタートアップ ルーチンに 5 つのデータ項目を指定できます。
コンストラクター
Tuple<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) |
Tuple<T1,T2,T3,T4,T5> クラスの新しいインスタンスを初期化します。 |
プロパティ
Item1 |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトの 1 番目のコンポーネントの値を取得します。 |
Item2 |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトの 2 番目のコンポーネントの値を取得します。 |
Item3 |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトの 3 番目のコンポーネントの値を取得します。 |
Item4 |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトの 4 番目のコンポーネントの値を取得します。 |
Item5 |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトの 5 番目のコンポーネントの値を取得します。 |
メソッド
Equals(Object) |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトが、指定されたオブジェクトと等しいかどうかを示す値を返します。 |
GetHashCode() |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトのハッシュ コードを返します。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
この Tuple<T1,T2,T3,T4,T5> インスタンスの値を表す文字列を返します。 |
明示的なインターフェイスの実装
IComparable.CompareTo(Object) |
現在の Tuple<T1,T2,T3,T4,T5> オブジェクトと指定したオブジェクトを比較して、現在のオブジェクトが、並べ替え順序において、指定したオブジェクトの前後または同じ位置のいずれにあるかを示す整数を返します。 |
IStructuralComparable.CompareTo(Object, IComparer) |
指定された比較子を使用して現在の Tuple<T1,T2,T3,T4,T5> オブジェクトと指定されたオブジェクトを比較し、並べ替え順序において、現在のオブジェクトの位置が指定されたオブジェクトの前になるか、後ろになるか、同じになるかを示す整数を返します。 |
IStructuralEquatable.Equals(Object, IEqualityComparer) |
指定された比較メソッドに基づいて、現在の Tuple<T1,T2,T3,T4,T5> オブジェクトが指定したオブジェクトと等しいかどうかを示す値を返します。 |
IStructuralEquatable.GetHashCode(IEqualityComparer) |
指定した計算メソッドを使用して、現在の Tuple<T1,T2,T3,T4,T5> オブジェクトのハッシュ コードを計算します。 |
ITuple.Item[Int32] |
指定した |
ITuple.Length |
|
拡張メソッド
Deconstruct<T1,T2,T3,T4,T5>(Tuple<T1,T2,T3,T4,T5>, T1, T2, T3, T4, T5) |
5 要素を持つタプルを別個の変数に分解します。 |
ToValueTuple<T1,T2,T3,T4,T5>(Tuple<T1,T2,T3,T4,T5>) |
クラスのインスタンスを |