C#

【C#】タプルの使い方

はじめに

(数値、数値)や(数値とbool)のように2つ以上の値の入れ物が欲しい時、タプルを使うことができます。C#7.0の機能であり、System.ValueTupleと名付けられた構造体に依存しています。.Net Framework 4.6では、System.ValueTupleは含まれておらず、同じ名前のNugetパッケージから利用できます。.Net Framework 4.7では、完全に組み込まれ、miscorlib.dllに含まれています。

非常に紛らわしいのですが、.Net Framework 4.0で、System.Tupleと名付けられたクラスが導入されており、同様にタプルとしての機能を提供します。タプルの利用されるシチュエーションを鑑みて、構造体の方がパフォーマンス上の利点があったため、System.ValueTuple構造体として改めて実装されたようです。以降の説明では、System.Tupleクラスは一切関係ないです。

使い方

宣言・初期化

丸括弧の中に値をカンマ区切りで指定すれば、タプルを表すことができます。試しにint型とstring型のタプルを作ってみます。

これは、以下のValueTupleの宣言・初期化と同じ意味です。

要素へのアクセス

各要素は、順番にItem1,Item2…でアクセスできます。

ラベル名の付与

Item1やItem2だと分かりにくい場合は、ラベル名を指定する事ができます。

または

ラベル名の付与は、コードの可読性を目的としたものであり、実行時にはItem1、Item2など本来のフィールド名に置き換わっています。

分解

タプルの値を、変数に展開できます。

タプルの値の中で、使用しない物がある場合は_(アンダーバー)を付けると、意図が分かりやすくなります。

Pocket