建立匿名型別

由於未命名匿名型別,因此必須隱式鍵入這些型別的變數(var)。

var anon = new { Foo = 1, Bar = 2 };
// anon.Foo == 1
// anon.Bar == 2

如果未指定成員名稱,則將它們設定為用於初始化物件的屬性/變數的名稱。

int foo = 1;
int bar = 2;
var anon2 = new { foo, bar };
// anon2.foo == 1
// anon2.bar == 2

請注意,只有在匿名型別宣告中的表示式是簡單的屬性訪問時,才能省略名稱; 對於方法呼叫或更復雜的表示式,必須指定屬性名稱。

string foo = "some string";
var anon3 = new { foo.Length };
// anon3.Length == 11
var anon4 = new { foo.Length <= 10 ? "short string" : "long string" };
// compiler error - Invalid anonymous type member declarator.
var anon5 = new { Description = foo.Length <= 10 ? "short string" : "long string" };
// OK