当前在LINQ中,以下代码可以编译并正常工作:

var listOfFoo = myData.Select(x => new FooModel{
     someProperty = x.prop1,
     someOtherProperty = x.prop2
});

public class FooModel{
     public string someProperty  { get; set; };
     public string someOtherProperty  { get; set; };
}

但是,.NET/C#的过去几个版本扩展了诸如ExpandoObject之类的动态对象的作用,我想知道是否有一种方法可以基本上做到这一点:
var listOfFoo = myData.Select(x => new ExpandoObject{
     someProperty = x.prop1,
     someOtherProperty = x.prop2
});

显然,我已经尝试了上面的代码,但是没有成功,但是似乎我缺少了一些东西。

最佳答案

您应该能够创建一个新的匿名对象,而无需声明任何类型:

var listOfFoo = myData.Select(x => new {
    someProperty = x.prop1,
    someOtherProperty = x.prop2
});

10-06 11:14