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

C#で2タプル(ペア)を作成する方法をわかりやすく解説

C#のTuple<T1, T2>クラスは、2つの要素を持つタプル「2タプル(ペア)」を表します。タプルとは、複数の要素を順序付けて格納できるデータ構造のことです。ペアタプルを使うことで、異なる型の2つの値をひとまとめにして扱えます。

基本的な使い方

Tuple<T1, T2>クラスのコンストラクタに2つの値を渡すことで、ペアタプルを作成できます。各要素には、Item1Item2プロパティを使ってアクセスします。

サンプルコード1:文字列型のペアタプル

まずは、string型の要素を2つ持つペアタプルを作成する例を見てみましょう。

using System;

public class Demo {
    public static void Main(string[] args) {
        // string型2つのペアタプルを作成
        Tuple<string, string> tuple = new Tuple<string, string>("jack", "steve");
        
        Console.WriteLine("Value = " + tuple.Item1);
        
        if (tuple.Item1 == "jack") {
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item1);
        }
        if (tuple.Item2 == "david") {
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item2);
        }
    }
}

実行結果

このコードを実行すると、以下の出力が得られます。

Value = jack
Exists: Tuple Value = jack

Item1には"jack"が格納されているため条件を満たして出力されますが、Item2は"steve"であり"david"ではないため、2つ目のif文の中身は実行されません。

サンプルコード2:異なる型を組み合わせたペアタプル

次に、int型とstring型など、異なる型の値を組み合わせたペアタプルを作成する例を見てみましょう。

using System;

public class Demo {
    public static void Main(string[] args) {
        // int型とstring型のペアタプルを作成
        Tuple<int, string> tuple = new Tuple<int, string>(20, "steve");
        
        Console.WriteLine("Value = " + tuple.Item1);
        
        if (tuple.Item1 == 20) {
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item1);
        }
        if (tuple.Item2 == "david") {
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item2);
        }
    }
}

実行結果

このコードを実行すると、以下の出力が得られます。

Value = 20
Exists: Tuple Value = 20

補足:より簡潔な作成方法とモダンな構文

C#では、静的なTuple.Createメソッドを使えば、型引数を明示せずにタプルを作成できます。

var tuple = Tuple.Create("jack", "steve");

また、C# 7.0以降では、より軽量で扱いやすいValueTuple(値タプル)構文も利用できます。要素名を付けられるため、可読性が大きく向上します。

(string Name, int Age) person = ("jack", 20);
Console.WriteLine(person.Name); // jack
Console.WriteLine(person.Age);  // 20

パフォーマンスや可読性を重視する場合はValueTupleの使用が推奨されますが、既存のコードや.NET Frameworkの旧バージョンとの互換性が必要な場面では、従来のTuple<T1, T2>クラスが活躍します。

  1. Pythonで非リテラルなタプルを作成する方法を解説

    はじめにPythonでは、タプルはイミュータブル(変更不可)なデータ構造であるため、リテラル以外の形で動的に作成したい場合には工夫が必要です。最もシンプルで一般的な方法は、まずリストを作成し、必要な値を変更した後、最後にタプルへ変換するという手順です。基本的な作成手順以下の手順で非リテラルなタプルを作成できます。リストを構築する(リストはミュータブルなので自由に値を変更できる)変更したい要素の値を書き換えるtuple()関数を使ってリストをタプルに変換するコード例実際のコード例を見てみましょう。def create_non_literal_tuple(a, b, c): x = [1]

  2. Pythonで空のタプルを作成する方法をわかりやすく解説

    Pythonでは、代入文において括弧 () の中に要素を何も書かないことで、空のタプル(tuple)オブジェクトを作成できます。また、組み込み関数 tuple() を引数なしで呼び出すことでも、空のタプルを生成することが可能です。 空のタプルを作成する2つの方法 1. 括弧 () を使う方法 最もシンプルな方法は、要素を含まない括弧をそのまま変数に代入することです。 >>> T1 = () >>> T1 () 2. tuple() 関数を使う方法 組み込み関数 tuple() に引数を渡さずに呼び出しても、同様に空のタプルが作成されます。 >>&