0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#のタプル型についてのアウトプット

0
Posted at

C#のタプル型について学んだことをアウトプットしていきます。

動作の確認は.NET9で行っています。

タプル型とは

タプル型は複数のデータをグループ化できます。
グループ化という意味では配列も同様ですが、タプル型は異なる型を混在させることが可能です。
また、タプル型はデータ構造的に参照型に見えなくもないですが、値型です。

宣言方法

タプル型は()を使用して宣言します。
以下のコードが基本的な宣言方法です。

C#
(string, int) name = ("紫咲シオン", 1208);
Console.WriteLine(name);

// (紫咲シオン, 1208)

タプル型もvarを使用して型を省略できます。

C#
var name2 = ("紫咲シオン", 1208);
Console.WriteLine(name2);

// (紫咲シオン, 1208)

データへのアクセス方法

個々のデータには変数名.Item位置でアクセスします。
この際、位置は配列とは違い、1から始まります。

C#
var name3 = ("紫咲シオン", 1208, 'S');
Console.WriteLine($"名前:{name3.Item1} 誕生日:{name3.Item2} イニシャル:{name3.Item3}");

// 名前:紫咲シオン 誕生日:1208 イニシャル:S

C#のタプルはフィールド名を付けることができます。
各データの前にフィールド名: を付与します。
フィールド名を付けることで、変数名.Item位置の他に変数名.フィールド名でもアクセスできるようになります。

C#
var name4 = (Name: "紫咲シオン", Birth: 1208);
Console.WriteLine($"名前:{name4.Name} 誕生日:{name4.Birth}");

// 名前:紫咲シオン 誕生日:1208

また、事前に宣言した変数を設定することで、その変数名がフィールドとなりアクセスすることも可能になります。

C#
var name = "紫咲シオン";
var birth = 1208;
var name5 = (name, birth);
Console.WriteLine($"名前:{name5.name} 誕生日:{name5.birth}");

// 名前:紫咲シオン 誕生日:1208

分割代入

タプル型はフィールド毎にデータを分けて代入することが可能です。
(型 変数名, ...) = タプル型の変数でそれぞれのデータが分割されて代入されます。

C#
var data = ("紫咲シオン", 1208);
(string name6, int birth2) = data;
Console.WriteLine($"名前:{name6} 誕生日:{birth2}");

// 名前:紫咲シオン 誕生日:1208

varを付けることで型を省略することも可能です。

C#
var data2 = ("紫咲シオン", 1208);
var (name7, birth3) = data2;
Console.WriteLine($"名前:{name7} 誕生日:{birth3}");

// 名前:紫咲シオン 誕生日:1208
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?