カテゴリ: C# 更新日: 2025/06/26

C#のタプル(Tuple)とは?初心者でもわかる複数の値をまとめる方法

C#のタプル(Tuple)とは?複数の値をまとめる便利な型を解説
C#のタプル(Tuple)とは?複数の値をまとめる便利な型を解説

先生と生徒の会話形式で理解しよう

生徒

「C#で、ひとつの変数に複数のデータを入れることってできますか?」

先生

「はい、C#では『タプル(Tuple)』という機能を使えば、複数の値をひとつにまとめて扱うことができますよ。」

生徒

「タプル?それって難しくないですか?」

先生

「心配いりません。とてもシンプルな使い方ができるので、初めてでもすぐに理解できますよ。では、タプルについて詳しく学んでいきましょう。」

1. タプル(Tuple)とは?

1. タプル(Tuple)とは?
1. タプル(Tuple)とは?

C#(シーシャープ)のタプル(Tuple)とは、複数の値を1つにまとめて扱うことができる特別な型です。

たとえば、「名前」と「年齢」をひとつのデータとしてまとめて使いたい場合、タプルを使えば簡単に管理できます。

通常、ひとつの変数にはひとつの値しか入れられませんが、タプルを使うことで、複数の値をひとまとめにして扱うことができます。

「データのセットをまとめたい」ときに、とても便利です。

2. タプルの使い方:基本編

2. タプルの使い方:基本編
2. タプルの使い方:基本編

まずは、C#でタプルを使う基本的な書き方を見てみましょう。以下は「名前」と「年齢」を1つのタプルにまとめる例です。


var person = ("たろう", 25);
Console.WriteLine($"名前: {person.Item1}");
Console.WriteLine($"年齢: {person.Item2}");

出力結果


名前: たろう
年齢: 25

このように、Item1Item2という名前で、それぞれの値を取り出すことができます。

3. タプルを使うメリットとは?

3. タプルを使うメリットとは?
3. タプルを使うメリットとは?

初心者の方にとっては、タプルのメリットを知ることで、より使いやすさを実感できます。タプルのメリットには、以下のような点があります:

  • 複数の値を簡単にまとめられる
  • クラスや構造体を使わなくてもOK
  • メソッドから複数の値を返すことができる

たとえば、「足し算」と「引き算」の両方の結果を同時に返したいときに、タプルはとても便利です。

4. 値に名前をつけてもっと読みやすくする

4. 値に名前をつけてもっと読みやすくする
4. 値に名前をつけてもっと読みやすくする

先ほどの例では、Item1Item2という番号でアクセスしていましたが、値に名前をつけることもできます


var person = (Name: "たろう", Age: 25);
Console.WriteLine($"名前: {person.Name}");
Console.WriteLine($"年齢: {person.Age}");

出力結果


名前: たろう
年齢: 25

このように、名前付きタプルにすることで、コードがずっと読みやすくなります。

5. タプルを使って複数の値を返すメソッド

5. タプルを使って複数の値を返すメソッド
5. タプルを使って複数の値を返すメソッド

通常のC#のメソッド(関数)は、ひとつの値しか返せません。でも、タプルを使えば複数の値を一度に返すことができます。

例として、「2つの数の和と差を計算する」メソッドを作ってみましょう。


static (int Sum, int Diff) Calculate(int a, int b)
{
    int sum = a + b;
    int diff = a - b;
    return (sum, diff);
}

var result = Calculate(10, 3);
Console.WriteLine($"足し算: {result.Sum}");
Console.WriteLine($"引き算: {result.Diff}");

出力結果


足し算: 13
引き算: 7

このように、メソッドから複数の結果を1つのタプルとして返すことができます。

6. タプルと配列やクラスとの違い

6. タプルと配列やクラスとの違い
6. タプルと配列やクラスとの違い

ここでよくある質問として、「配列やクラスと何が違うの?」という点があります。

配列は、同じ型のデータをまとめるものです。たとえば整数だけのリストなど。

一方、クラスは、設計図のようにデータと処理をまとめる構造で、もっと複雑な場面に使います。

そしてタプルは、簡単に異なる型の値をまとめて一時的に使うときに向いています。次のような場面にぴったりです:

  • ちょっとだけ2〜3個の値を一緒に返したい
  • クラスを作るほどでもない小さな処理
  • 型がバラバラな値をまとめたいとき

7. タプルの注意点と制限

7. タプルの注意点と制限
7. タプルの注意点と制限

便利なタプルですが、いくつかの注意点もあります。

  • 値の数が多すぎると読みにくくなる
  • 名前をつけないと、Item1などでしか取り出せない
  • クラスや構造体に比べて、拡張性は低い

つまり、短くてシンプルなデータのやりとりに使うのがベストです。

8. 実践:簡単なミニプログラム

8. 実践:簡単なミニプログラム
8. 実践:簡単なミニプログラム

最後に、ユーザーの情報をタプルで扱う簡単なプログラムを紹介します。


var user = GetUserInfo();
Console.WriteLine($"ユーザー名: {user.Name}");
Console.WriteLine($"スコア: {user.Score}");

static (string Name, int Score) GetUserInfo()
{
    string name = "ユーザー1";
    int score = 88;
    return (name, score);
}

このように、関数とタプルを組み合わせることで、コードがすっきりします。

カテゴリの一覧へ
新着記事
COBOLの変数名の付け方を解説!初心者でもわかる命名規則とコツ
C#のbreakとcontinueの使い方!ループ制御の基本テクニック
COBOLのFILLERの使い方とは?未使用領域を上手に管理する基本テクニック
C#のforeach文の基本!配列やコレクションを簡単に繰り返し処理する方法
人気記事
No.1
Java&Spring記事人気No1
C#のwhile文の使い方!条件付きループを基礎から学ぼう
No.2
Java&Spring記事人気No2
COBOLのDISPLAY文の使い方を完全ガイド!初心者でもわかる出力方法
No.3
Java&Spring記事人気No3
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.4
Java&Spring記事人気No4
COBOLのINDEXED BY句を使ったインデックス管理の基本をやさしく解説!