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

C#のTupleクラスとは?3つ組(トリプル)の基本と使い方

Tuple<T1, T2, T3>クラスとは

C#のTuple<T1, T2, T3>クラスは、3つの要素を持つタプル(3-tuple、トリプルとも呼ばれます)を表すクラスです。タプルとは、複数の要素を順序付けて格納できるデータ構造であり、異なる型の値をひとまとめにして扱うことができます。

Tuple<T1, T2, T3>の主な用途

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

主なプロパティ

Tuple<T1, T2, T3>クラスには、各要素に対応する以下の3つのプロパティが用意されています。

  • Item1 ― 現在のTuple<T1, T2, T3>オブジェクトの1番目の要素の値を取得します。
  • Item2 ― 現在のTuple<T1, T2, T3>オブジェクトの2番目の要素の値を取得します。
  • Item3 ― 現在のTuple<T1, T2, T3>オブジェクトの3番目の要素の値を取得します。

例1:int型とstring型を組み合わせた3-tuple

それでは、C#で3-tupleを実装する具体的な例を見てみましょう。

using System;
public class Demo {
    public static void Main(string[] args) {
        Tuple<int,string,string> tuple = new Tuple<int,string,string>(35, "steve", "katie");
        Console.WriteLine("Value (Item1)= " + tuple.Item1);
        Console.WriteLine("Value (Item2)= " + tuple.Item2);
        Console.WriteLine("Value (Item3)= " + tuple.Item3);
        if (tuple.Item1 == 35) {
            Console.WriteLine("Exists: Tuple Value = " +tuple.Item1);
        }
        if (tuple.Item2 == "jack") {
            Console.WriteLine("Exists: Tuple Value = " +tuple.Item2);
        }
        if (tuple.Item3 == "katie") {
            Console.WriteLine("Exists: Tuple Value = " +tuple.Item3);
        }
    }
}

出力結果

このプログラムを実行すると、次のような出力が得られます。

Value (Item1)= 35
Value (Item2)= steve
Value (Item3)= katie
Exists: Tuple Value = 35
Exists: Tuple Value = katie

この例では、Item1が「35」、Item3が「katie」と一致したため、その値が出力されています。一方、Item2は「steve」であるため「jack」との比較条件は成立せず、出力されていません。

例2:すべてstring型の3-tuple

続いて、3つの要素すべてがstring型の3-tupleを使用する例を見てみましょう。

using System;
public class Demo {
    public static void Main(string[] args) {
        Tuple<string,string,string> tuple = new Tuple<string,string,string>("nathan", "steve", "katie");
        Console.WriteLine("Value (Item1)= " + tuple.Item1);
        Console.WriteLine("Value (Item2)= " + tuple.Item2);
        Console.WriteLine("Value (Item3)= " + tuple.Item3);
        if (tuple.Item1 == "nathan") {
            Console.WriteLine("Exists: Tuple Value = " +tuple.Item1);
        }
        if (tuple.Item2 == "jack") {
            Console.WriteLine("Exists: Tuple Value = " +tuple.Item2);
        }
        if (tuple.Item3 == "katie") {
            Console.WriteLine("Exists: Tuple Value = " +tuple.Item3);
        }
    }
}

出力結果

このプログラムを実行すると、次のような出力が得られます。

Value (Item1)= nathan
Value (Item2)= steve
Value (Item3)= katie
Exists: Tuple Value = nathan
Exists: Tuple Value = katie

このように、Tuple<T1, T2, T3>クラスを使えば、異なる型・同じ型を問わず3つの値を簡潔にまとめて管理でき、条件判定なども各プロパティ経由で直感的に行えます。

  1. C#のConvertクラスを使ったデータ型変換の基本と実例

    C#のConvertクラスには、基本データ型を別の基本データ型へ変換するためのメソッドが多数用意されています。この記事では、代表的な変換メソッドであるConvert.ToBoolean()、Convert.ToDouble()、Convert.ToDecimal()の使い方を、構文・サンプルコード・実行結果とあわせてわかりやすく解説します。 Convert.ToBoolean()メソッドとは Convert.ToBoolean()メソッドは、指定した値を等価なBoolean(真偽値)に変換します。文字列「true」や「false」をbool型に変換したい場合などに利用されます。 構文 pu

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

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