C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。
匿名型
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types
明示的に型を定義することなく、複数の読み取り専用プロパティを持ったオブジェクトを生成できる。 各プロパティの型はコンパイラにより推論される。
var p = new { Name = "窓スマ", Size = 5.0 }; // 読み取り専用のプロパティを持っている Console.WriteLine(string.Format("{0}, {1} インチ", p.Name, p.Size)); // 窓スマ, 5 インチ // 型は匿名の型 Console.WriteLine(string.Format("p is {0}", p.GetType().Name)); // p is <>f__AnonymousType0`2 // プロパティの型は推論される Console.WriteLine(string.Format("Name is {0}", p.Name.GetType().Name)); // Name is String Console.WriteLine(string.Format("Size is {0}", p.Size.GetType().Name)); // Name is Double