使用通用构造函数将需要命名匿名类型,这是不可能的。可替代地,可以使用通用方法来允许类型推断发生。
var anon = new { Foo = 1, Bar = 2 }; var anon2 = new { Foo = 5, Bar = 10 }; List<T> CreateList<T>(params T[] items) { return new List<T>(items); } var list1 = CreateList(anon, anon2);
对于List<T>,可以List<T>通过ToListLINQ方法将隐式类型的数组转换为:
var list2 = new[] {anon, anon2}.ToList();