C#で3タプル(トリプル)を作成する方法をわかりやすく解説
C#のTuple<T1, T2, T3>クラスは、3つの要素を持つ「トリプル」と呼ばれるタプルを表します。タプルとは、順序付けられた複数の要素をひとつのかたまりとして扱えるデータ構造です。
タプルは主に以下のような場面で活用されます。
- データセットへのアクセスを容易にしたい場合
- データセットの操作を簡潔に行いたい場合
- 単一のデータセットとして表現したい場合
- メソッドから複数の値を返したい場合
- メソッドへ複数の値を渡したい場合
各要素には、Item1・Item2・Item3というプロパティを通じてアクセスできます。
サンプルコード1:int型とstring型を組み合わせた3タプル
まずは、int型とstring型を組み合わせた3タプルを作成し、各要素の値を表示・比較する例を見てみましょう。
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")に対してのみ「Exists」のメッセージが表示されていることが分かります。Item2は"jack"ではないため、該当メッセージは出力されません。
サンプルコード2:すべてstring型の3タプル
続いて、3つの要素がすべてstring型である3タプルの例です。
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
まとめ
C#で3タプルを作成するには、Tuple<T1, T2, T3>クラスを使用します。コンストラクタに3つの値を渡すだけで簡単に生成でき、Item1〜Item3プロパティで各要素にアクセスできます。なお、C# 7.0以降では、より簡潔に記述できる「値タプル(ValueTuple)」構文も利用可能ですので、用途に応じて使い分けるとよいでしょう。
-
Pythonで非リテラルなタプルを作成する方法を解説
はじめにPythonでは、タプルはイミュータブル(変更不可)なデータ構造であるため、リテラル以外の形で動的に作成したい場合には工夫が必要です。最もシンプルで一般的な方法は、まずリストを作成し、必要な値を変更した後、最後にタプルへ変換するという手順です。基本的な作成手順以下の手順で非リテラルなタプルを作成できます。リストを構築する(リストはミュータブルなので自由に値を変更できる)変更したい要素の値を書き換えるtuple()関数を使ってリストをタプルに変換するコード例実際のコード例を見てみましょう。def create_non_literal_tuple(a, b, c): x = [1]
-
Pythonで空のタプルを作成する方法をわかりやすく解説
Pythonでは、代入文において括弧 () の中に要素を何も書かないことで、空のタプル(tuple)オブジェクトを作成できます。また、組み込み関数 tuple() を引数なしで呼び出すことでも、空のタプルを生成することが可能です。 空のタプルを作成する2つの方法 1. 括弧 () を使う方法 最もシンプルな方法は、要素を含まない括弧をそのまま変数に代入することです。 >>> T1 = () >>> T1 () 2. tuple() 関数を使う方法 組み込み関数 tuple() に引数を渡さずに呼び出しても、同様に空のタプルが作成されます。 >>&