C#におけるネストされたタプル(入れ子のタプル)の作成方法と要素へのアクセス
C#では、タプルの中にさらに別のタプルを格納することができます。これを「ネストされたタプル(入れ子のタプル)」と呼びます。ここでは、ネストされたタプルの作成方法と、その要素へアクセスする方法を解説します。
ネストされたタプルの宣言
まず、ネストされたタプルを宣言してみましょう。以下の例では、Tuple.Createメソッドを使用して、7番目の要素として別のタプルを含むタプルを作成しています。
var tuple = Tuple.Create(100, 200, 300, 400, 500, 600, Tuple.Create(720, 750, 780), 800);
上記のコードでは、Tuple.Createを使って内側にネストされたタプル (720, 750, 780) を追加しています。
ネストされたタプルの要素へのアクセス
ネストされたタプルの要素を表示するには、Itemプロパティを連続的に指定(ネスト)します。この例では、タプルの7番目の項目がネストされているため、次のように記述することで内側の要素にアクセスできます。
tuple.Item7.Item1; tuple.Item7.Item2; tuple.Item7.Item3;
完全なコード例
それでは、動作を確認できる完全なコードを見てみましょう。
using System;
public class Program {
public static void Main() {
var tuple = Tuple.Create(100, 200, 300, 400, 500, 600, Tuple.Create(720, 750, 780), 800);
Console.WriteLine(tuple.Item1);
Console.WriteLine(tuple.Item2);
Console.WriteLine(tuple.Item3);
Console.WriteLine(tuple.Item4);
Console.WriteLine(tuple.Item5);
Console.WriteLine(tuple.Item6);
// ネストされたタプル
Console.WriteLine("\nNested Tuple...");
Console.WriteLine(tuple.Item7.Item1);
Console.WriteLine(tuple.Item7.Item2);
Console.WriteLine(tuple.Item7.Item3);
Console.WriteLine("\n8th element...\n" + tuple.Rest.Item1);
}
}
実行結果
100 200 300 400 500 600 Nested Tuple... 720 750 780 8th element... 800
ポイントの解説
- Item1〜Item7: タプルの各要素には
Item1からItem7のプロパティでアクセスできます。 - Rest プロパティ: 8番目以降の要素は
tuple.Rest.Item1のようにRestプロパティを経由してアクセスします。これは、標準のタプルが最大7つの要素までしか直接サポートしていないためです。 - ネストの深さ: ネストが深くなるほどアクセスのためのチェーンも長くなります(例:
tuple.Item7.Item2)。可読性を保つため、あまり深いネストは避けるのがおすすめです。
-
C#でタプルのリストを簡単に初期化する方法【コード例付き】
タプル(Tuple)は、プロパティを持つオブジェクトを格納するためのデータ構造が必要なときに便利です。専用のクラスや型を新しく定義するほどではない場面で、複数の値を手軽にひとまとめにできます。 Tuple<T>クラスは.NET Framework 4.0で導入されました。タプルとは、異なるデータ型の要素を順序付けて格納できるデータ構造のことです。 Tuple<int, string, string> person = new Tuple<int, string, string>(1, Test, Test1); なお、1つのタプルに格納できる要素は最
-
C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説
C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System