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

【C#】Tupleクラスの使い方を徹底解説

C#のTuple<T1, T2, T3, T4, T5, T6>クラスとは

Tuple<T1, T2, T3, T4, T5, T6> クラスは、6 つの要素を持つ「6 タプル」を表します。タプルとは、複数の要素を順序付けてひとまとめに格納できるデータ構造で、各要素にはそれぞれ異なる型を指定できます。

このクラスは、次のような場面で活用されます。

  • データセットへのシンプルなアクセス
  • データセットの容易な操作
  • 単一のデータセットとしての表現
  • メソッドから複数の値を返したい場合
  • メソッドに複数の値を渡したい場合

主要な6つのプロパティ

Tuple<T1, T2, T3, T4, T5, T6> オブジェクトの各要素には、以下のプロパティを使ってアクセスできます。

  • Item1 … 1 番目の要素(T1 型)の値を取得します。
  • Item2 … 2 番目の要素(T2 型)の値を取得します。
  • Item3 … 3 番目の要素(T3 型)の値を取得します。
  • Item4 … 4 番目の要素(T4 型)の値を取得します。
  • Item5 … 5 番目の要素(T5 型)の値を取得します。
  • Item6 … 6 番目の要素(T6 型)の値を取得します。

それでは、C# で 6 タプルを実装する具体的な例を見ていきましょう。

例1:文字列と整数を混在させた6タプル

using System;
public class Demo {
    public static void Main(string[] args) {
        Tuple<string,int,string,int,int,string> tuple = new Tuple<string,int,string,int,int,string>("jack", 150, "pete", 300, 600, "allan");
        Console.WriteLine("Item1 の値 = " + tuple.Item1);
        Console.WriteLine("Item2 の値 = " + tuple.Item2);
        Console.WriteLine("Item3 の値 = " + tuple.Item3);
        Console.WriteLine("Item4 の値 = " + tuple.Item4);
        Console.WriteLine("Item5 の値 = " + tuple.Item5);
        Console.WriteLine("Item6 の値 = " + tuple.Item6);
        if (tuple.Item1 == "kevin") {
            Console.WriteLine("該当あり: Item1 = " + tuple.Item1);
        }
        if (tuple.Item2 == 250) {
            Console.WriteLine("該当あり: Item2 = " + tuple.Item2);
        }
        if (tuple.Item3 == "pete") {
            Console.WriteLine("該当あり: Item3 = " + tuple.Item3);
        }
        if (tuple.Item4 == 300) {
            Console.WriteLine("該当あり: Item4 = " + tuple.Item4);
        }
        if (tuple.Item5 == 400) {
            Console.WriteLine("該当あり: Item5 = " + tuple.Item5);
        }
        if (tuple.Item6 == "allan") {
            Console.WriteLine("該当あり: Item6 = " + tuple.Item6);
        }
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Item1 の値 = jack
Item2 の値 = 150
Item3 の値 = pete
Item4 の値 = 300
Item5 の値 = 600
Item6 の値 = allan
該当あり: Item3 = pete
該当あり: Item4 = 300
該当あり: Item6 = allan

続いて、すべての要素が int 型の 6 タプルの例を見てみましょう。

例2:すべてint型の6タプル

using System;
public class Demo {
    public static void Main(string[] args) {
        Tuple<int,int,int,int,int,int> tuple = new Tuple<int,int,int,int,int,int>(100, 150, 200, 300, 600, 1000);
        Console.WriteLine("Item1 の値 = " + tuple.Item1);
        Console.WriteLine("Item2 の値 = " + tuple.Item2);
        Console.WriteLine("Item3 の値 = " + tuple.Item3);
        Console.WriteLine("Item4 の値 = " + tuple.Item4);
        Console.WriteLine("Item5 の値 = " + tuple.Item5);
        Console.WriteLine("Item6 の値 = " + tuple.Item6);
        if (tuple.Item1 == 100) {
            Console.WriteLine("該当あり: Item1 = " + tuple.Item1);
        }
        if (tuple.Item2 == 250) {
            Console.WriteLine("該当あり: Item2 = " + tuple.Item2);
        }
        if (tuple.Item3 == 300) {
            Console.WriteLine("該当あり: Item3 = " + tuple.Item3);
        }
        if (tuple.Item4 == 300) {
            Console.WriteLine("該当あり: Item4 = " + tuple.Item4);
        }
        if (tuple.Item5 == 400) {
            Console.WriteLine("該当あり: Item5 = " + tuple.Item5);
        }
        if (tuple.Item6 == 500) {
            Console.WriteLine("該当あり: Item6 = " + tuple.Item6);
        }
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Item1 の値 = 100
Item2 の値 = 150
Item3 の値 = 200
Item4 の値 = 300
Item5 の値 = 600
Item6 の値 = 1000
該当あり: Item1 = 100
該当あり: Item4 = 300

このように Tuple<T1, T2, T3, T4, T5, T6> を使えば、異なる型を含めて最大 6 つの値をひとつのオブジェクトとして簡潔に扱えます。if 文による条件判定と組み合わせれば、特定の要素が存在するかどうかのチェックも簡単に行えるため、メソッド間での複数値の受け渡しにも便利なクラスです。

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

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

  2. C#のクラスとは?基本構文からサンプルコードまで徹底解説

    C#におけるクラスとは、データ型の「設計図(ブループリント)」に相当するものです。クラスをもとに生成された実体をオブジェクトと呼び、オブジェクトはクラスのインスタンスであるといえます。また、クラスを構成するメソッドや変数は、まとめてクラスのメンバーと呼ばれます。クラスの一般的な定義形式C#でクラスを定義する際の一般的な書式は以下のとおりです。<アクセス修飾子> class クラス名 {     // メンバー変数     <アクセス修飾子> <データ型> 変数1;  &