如何通过匿名类型的集合进行枚举?

oss*_*gix 3 .net c# linq anonymous-types

这就是我所拥有的:

List<Person> list = new List<Person>()
{
    new Person { Name="test", Age=1 },
    new Person { Name="tester", Age=2 }
};

var items = list.Select(x =>
{
    return new
    {
        Name = x.Name
    };
});

foreach (object o in items)
{
    Console.WriteLine(o.GetType().GetProperty("Name").GetValue(o, null));
}
Run Code Online (Sandbox Code Playgroud)

我觉得我做得不对.

是否有更简单的方法来访问集合中匿名类型的属性?

Bol*_*ock 18

也可以在行中使用var关键字foreach,而不是常规object类型.然后,编译器将自动解析匿名类型及其所有成员,因此您可以直接按名称访问属性.

foreach (var o in items)
{
    Console.WriteLine(o.Name);
}
Run Code Online (Sandbox Code Playgroud)