C#のTuple<T1,T2,T3,T4,T5,T6,T7>クラスとは?7つ組(セプテット)の使い方を解説
Tuple<T1, T2, T3, T4, T5, T6, T7>クラスは、7つの要素を持つタプル(7-tuple)を表すクラスで、「セプテット(septet)」とも呼ばれます。タプルとは、複数の要素をひとまとまりのシーケンスとして順序付けて格納できるデータ構造です。
タプルの主な用途
- データセットへの簡単なアクセス
- データセットの効率的な操作
- 単一のデータセットとしての表現
- メソッドから複数の値を返したい場合
- メソッドに複数の値を渡したい場合
7つのプロパティ
Tuple<T1, T2, T3, T4, T5, T6, T7>クラスには、各要素に対応する以下の7つの読み取り専用プロパティが用意されています。
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番目の要素の値を取得します。
それでは、C#で7つ組タプルを実装する具体的な例を見ていきましょう。
例1:7つ組タプルの作成と値の取得
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<int,int,int,int,int,int,int> tuple = new Tuple<int,int,int,int,int,int,int>(100, 150, 200, 300, 600, 1000, 2000);
Console.WriteLine("Value (Item1)= " + tuple.Item1);
Console.WriteLine("Value (Item2)= " + tuple.Item2);
Console.WriteLine("Value (Item3)= " + tuple.Item3);
Console.WriteLine("Value (Item4)= " + tuple.Item4);
Console.WriteLine("Value (Item5)= " + tuple.Item5);
Console.WriteLine("Value (Item6)= " + tuple.Item6);
Console.WriteLine("Value (Item7)= " + tuple.Item7);
if (tuple.Item5 == 600) {
Console.WriteLine("Exists: Tuple Item 5 = " +tuple.Item5);
}
if (tuple.Item6 == 900) {
Console.WriteLine("Exists: Tuple Item 6 = " +tuple.Item6);
}
if (tuple.Item7 == 2000) {
Console.WriteLine("Exists: Tuple Item 7 = " +tuple.Item7);
}
}
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
Value (Item1)= 100 Value (Item2)= 150 Value (Item3)= 200 Value (Item4)= 300 Value (Item5)= 600 Value (Item6)= 1000 Value (Item7)= 2000 Exists: Tuple Item 5 = 600 Exists: Tuple Item 7 = 2000
この例では、Item5が600であること、およびItem7が2000であることが条件に一致したため、それぞれのメッセージが出力されています。一方、Item6は900ではないため該当する出力はありません。
続いて、要素同士の値を比較する例を見てみましょう。
例2:タプルの要素同士を比較する
using System;
public class Demo {
public static void Main(string[] args) {
Tuple<int,int,int,int,int,int,int> tuple = new Tuple<int,int,int,int,int,int,int>(100, 150, 200, 300, 600, 1000, 1000);
Console.WriteLine("Value (Item1)= " + tuple.Item1);
Console.WriteLine("Value (Item2)= " + tuple.Item2);
Console.WriteLine("Value (Item3)= " + tuple.Item3);
Console.WriteLine("Value (Item4)= " + tuple.Item4);
Console.WriteLine("Value (Item5)= " + tuple.Item5);
Console.WriteLine("Value (Item6)= " + tuple.Item6);
Console.WriteLine("Value (Item7)= " + tuple.Item7);
if (tuple.Item5 == 600) {
Console.WriteLine("Exists: Tuple Item 5 = " +tuple.Item5);
}
if (tuple.Item6 == 900) {
Console.WriteLine("Exists: Tuple Item 6 = " +tuple.Item6);
}
if (tuple.Item7 == 2000) {
Console.WriteLine("Exists: Tuple Item 7 = " +tuple.Item7);
}
if (tuple.Item7 == tuple.Item6){
Console.WriteLine("Tuple Items Matched!");
}
}
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
Value (Item1)= 100 Value (Item2)= 150 Value (Item3)= 200 Value (Item4)= 300 Value (Item5)= 600 Value (Item6)= 1000 Value (Item7)= 1000 Exists: Tuple Item 5 = 600 Tuple Items Matched!
この例では、Item6とItem7がどちらも1000という同じ値を持っているため、「Tuple Items Matched!」というメッセージが出力されます。このように、タプルの各要素にはItem1〜Item7のプロパティを使って簡単にアクセスでき、条件判定や値の比較にも活用できます。
-
C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説
C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System
-
C#のシングルトンクラスとは?実装方法とサンプルコードを解説
シングルトンクラスとは シングルトンパターン(Singleton Pattern)は、クラスのインスタンスがアプリケーション内で1つだけ存在することを保証するデザインパターンです。データの割り当てやインスタンス化が一度だけ行われるため、メモリの無駄な消費を抑えることができます。 シングルトンクラスには通常のメソッドを持たせることが可能で、その唯一のインスタンスを通じてメソッドを呼び出します。 複数インスタンスの生成を防ぐ方法 クラスの複数のインスタンスが作成されるのを防ぐには、プライベートコンストラクタ(private constructor)を使用します。コンストラクタをprivateにす