名前のない型を作ることができるTuple。
今まで使ったことがなかったので、サンプル作ってみました。
var tuple = ("データ1", 1000); Console.WriteLine($"データ:{tuple.Item1} 種別:{tuple.Item2}");
string とint をセットしています。
Tuple にセットした値は、Item1,Item2...で参照できます。
リストを使ってみるとこんな感じ。
// データ名、データ番号を格納する。 var tupleList = new List<Tuple<string, int>>(); tupleList.Add(Tuple.Create("データ1", 1000)); tupleList.Add(Tuple.Create("データ2", 2000)); foreach (var item in tupleList) { Console.WriteLine($"データ:{item.Item1} 種別:{item.Item2}"); }
ここで、1点注意が。
上記のサンプル2つは、Tupleにセットする型が違いますよね?
参照するとき、Item1,Item2と設定するため、判断が型の違いに頼ることになります。
例えば以下のサンプル。
// データ名、データ番号、並び順を格納する。 var tupleList2 = new List<Tuple<string, int, int>>(); tupleList2.Add(Tuple.Create("データ1", 1000, 1)); tupleList2.Add(Tuple.Create("データ2", 2000, 2));
Item1 = string
Item2 = int
Item3 = int
となってしまい、判断を間違えてしまう可能性があります。
なので、Tuple を使う際に、型が同じものを使うのは
避けたほうがミスが減るのでいいでしょうね。