C# 7.1のTupleが賢くなった
まわりに使う人がほとんどいなかったので、なるべく使わないようにしていたTupleクラス。Key-Valueの関係ではないのでDictionaryではないけど、とりあえず一時的にひとまとめにしたいときにすごく重宝する。だけどもItem1とかItem2という面白みのない要素名にはもうちょっとなんとかならないかとおもっていた。
これがC# 7.1で見事に解決していた。Tupleを構築するときの変数名がそのまま要素名になる。
C# 7.0以前
var name = "mckuraw"; var age = 100; var t = new Tuple<string, int>(name, age); Console.WriteLine($"Name:{t.Item1},Age:{t.Item2}");
これが、
C# 7.1以降
var name = "mckuraw"; var age = 100; var t71 = (name, age); Console.WriteLine($"Name:{t71.name},Age:{t71.age}");
こう書けるようになった。これでまわりの人にTupleクラスを勧めても「このItem1ってなに?」って言われなくなる(はず)。