匿名类型,枚举器和Lambda表达式

时间:2012-03-16 10:53:41

标签: c#

使用:

    var Foo = new[]{ new {Something = 321}};

为什么我可以(编译):

    Console.WriteLine( Foo[0].Something );

但不是:

     Foo.ForEach(x => Console.WriteLine(x.Something));

2 个答案:

答案 0 :(得分:7)

因为Array只有静态ForEach方法:

var Foo = new[] { new { Something = 321 } };
Array.ForEach(Foo, x => Console.WriteLine(x.Something));

编译并运作。

答案 1 :(得分:4)

 Foo.ToList().ForEach(x => Console.WriteLine(x.Something));

相反,因为ForEach扩展仅适用于列表

编辑:经过测试和运作。

EDIT2 :制作“匿名列表”的一些解决方法

This SO post
This blog post
Another blog post