【C#】タプル(tuple)について詳しく解説

【C#】タプル(tuple)について詳しく解説

タプルとは

タプル(Tuple)は、複数の異なる型の値を一つのオブジェクトとしてまとめるデータ構造です。通常のクラスや構造体を定義せずに、一時的なデータのグループを簡単に作成できます。

タプルの基本的な使い方

C#では、タプルを作成する方法がいくつかあります。

Tupleクラスを使う(.NET Framework向け)


    var tuple1 = new Tuple(1, "Hello");
    Console.WriteLine(tuple1.Item1); // 1
    Console.WriteLine(tuple1.Item2); // Hello
    

タプルリテラル(C# 7.0以降)


    var tuple2 = (1, "Hello");
    Console.WriteLine(tuple2.Item1); // 1
    Console.WriteLine(tuple2.Item2); // Hello
    

名前付きタプル

タプルの各要素に名前を付けることで、コードの可読性が向上します。


    var person = (Id: 1, Name: "John");
    Console.WriteLine(person.Id); // 1
    Console.WriteLine(person.Name); // John
    

タプルを返すメソッド

メソッドの戻り値としてタプルを使用すると、複数の値を簡単に返すことができます。


    (int, string) GetPerson()
    {
        return (1, "John");
    }
    var person = GetPerson();
    Console.WriteLine(person.Item1); // 1
    Console.WriteLine(person.Item2); // John
    

タプルの分解(Deconstruction)

タプルを個別の変数に分解することができます。


    var (id, name) = GetPerson();
    Console.WriteLine(id);   // 1
    Console.WriteLine(name); // John
    

タプルとクラスの違い

  • タプル: 簡単なデータのグループ化に適しているが、拡張性は低い。
  • クラス: 機能を持たせたり、継承やカプセル化が可能。

タプルの制限

タプルには以下のような制限があります。

  • 読み取り専用(変更できない)
  • 最大要素数は8(それ以上はネストが必要)

まとめ

C#のタプルは、複数の値をまとめるのに便利なデータ構造です。簡単に使えますが、長期的なデータ管理にはクラスや構造体を検討する必要があります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です