当前在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
});