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

C#で7タプル(セプテット)を作成する方法|基本の使い方とサンプルコード

C#のTuple<T1,T2,T3,T4,T5,T6,T7>クラスは、7つの要素を持つ「7タプル(セプテット)」を表します。タプルとは、複数の要素を順序付けてひとまとめに格納できるデータ構造であり、異なる型の値を組み合わせて保持することもできます。

タプルの主な用途

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

例1:7タプルの作成と要素の取得

以下は、C#で7タプルを作成し、各要素を参照する例です。

using System;
public class Demo {
   public static void Main(string[] args) {
      var tuple = new Tuple<int, int, int, int, int, int, int>(100, 150, 200, 300, 600, 1000, 2000);
      Console.WriteLine("Value (Item1)= " + tuple.Item1);
      Console.WriteLine("Value (Item2)= " + tuple.Item2);
      Console.WriteLine("Value (Item3)= " + tuple.Item3);
      Console.WriteLine("Value (Item4)= " + tuple.Item4);
      Console.WriteLine("Value (Item5)= " + tuple.Item5);
      Console.WriteLine("Value (Item6)= " + tuple.Item6);
      Console.WriteLine("Value (Item7)= " + tuple.Item7);

      if (tuple.Item5 == 600) {
         Console.WriteLine("Exists: Tuple Item 5 = " + tuple.Item5);
      }
      if (tuple.Item6 == 900) {
         Console.WriteLine("Exists: Tuple Item 6 = " + tuple.Item6);
      }
      if (tuple.Item7 == 2000) {
         Console.WriteLine("Exists: Tuple Item 7 = " + tuple.Item7);
      }
   }
}

出力結果

Value (Item1)= 100
Value (Item2)= 150
Value (Item3)= 200
Value (Item4)= 300
Value (Item5)= 600
Value (Item6)= 1000
Value (Item7)= 2000
Exists: Tuple Item 5 = 600
Exists: Tuple Item 7 = 2000

この例では、Item5が600であるため「Exists: Tuple Item 5 = 600」が出力され、Item6は900ではないため該当するメッセージは表示されません。また、Item7が2000であるため「Exists: Tuple Item 7 = 2000」が出力されます。

例2:タプル要素同士の比較

次に、タプルの要素同士を比較する例を見てみましょう。

using System;
public class Demo {
   public static void Main(string[] args) {
      var tuple = new Tuple<int, int, int, int, int, int, int>(100, 150, 200, 300, 600, 1000, 1000);
      Console.WriteLine("Value (Item1)= " + tuple.Item1);
      Console.WriteLine("Value (Item2)= " + tuple.Item2);
      Console.WriteLine("Value (Item3)= " + tuple.Item3);
      Console.WriteLine("Value (Item4)= " + tuple.Item4);
      Console.WriteLine("Value (Item5)= " + tuple.Item5);
      Console.WriteLine("Value (Item6)= " + tuple.Item6);
      Console.WriteLine("Value (Item7)= " + tuple.Item7);

      if (tuple.Item5 == 600) {
         Console.WriteLine("Exists: Tuple Item 5 = " + tuple.Item5);
      }
      if (tuple.Item6 == 900) {
         Console.WriteLine("Exists: Tuple Item 6 = " + tuple.Item6);
      }
      if (tuple.Item7 == 2000) {
         Console.WriteLine("Exists: Tuple Item 7 = " + tuple.Item7);
      }
      if (tuple.Item7 == tuple.Item6) {
         Console.WriteLine("Tuple Items Matched!");
      }
   }
}

出力結果

Value (Item1)= 100
Value (Item2)= 150
Value (Item3)= 200
Value (Item4)= 300
Value (Item5)= 600
Value (Item6)= 1000
Value (Item7)= 1000
Exists: Tuple Item 5 = 600
Tuple Items Matched!

ここではItem6とItem7がどちらも1000であるため、「Tuple Items Matched!」というメッセージが表示されます。このように、タプルの各要素にはItem1Item7のプロパティを使ってアクセスでき、条件分岐や比較処理にもそのまま利用できます。

補足:C# 7.0以降ならValueTupleが便利

.NET Framework 4.7以降、またはC# 7.0以降の環境では、より軽量なValueTuple構造体と言語組み込みのタプル構文を使用できます。要素に名前を付けられるため、コードの可読性が大きく向上します。

(int First, int Second, int Third, int Fourth, int Fifth, int Sixth, int Seventh) numbers =
   (100, 150, 200, 300, 600, 1000, 2000);

Console.WriteLine(numbers.Fifth); // 出力: 600

Tupleクラスは参照型かつイミュータブル(不変)である一方、ValueTupleは値型でフィールドの変更も可能です。パフォーマンスが重視される場面ではValueTupleの使用が推奨されます。

  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() に引数を渡さずに呼び出しても、同様に空のタプルが作成されます。 >>&