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