C#
 Computer >> コンピューター >  >> プログラミング >> C#

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)。可読性を保つため、あまり深いネストは避けるのがおすすめです。
  1. C#でタプルのリストを簡単に初期化する方法【コード例付き】

    タプル(Tuple)は、プロパティを持つオブジェクトを格納するためのデータ構造が必要なときに便利です。専用のクラスや型を新しく定義するほどではない場面で、複数の値を手軽にひとまとめにできます。 Tuple<T>クラスは.NET Framework 4.0で導入されました。タプルとは、異なるデータ型の要素を順序付けて格納できるデータ構造のことです。 Tuple<int, string, string> person = new Tuple<int, string, string>(1, Test, Test1); なお、1つのタプルに格納できる要素は最

  2. C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説

    C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System