Mat*_*att 20 .net c# duck-typing dynamic expandoobject
目前在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; };
}
Run Code Online (Sandbox Code Playgroud)
但是,过去几个版本的.NET/C#已经扩展了动态对象的作用,例如ExpandoObject
,我想知道是否有办法基本上这样做:
var listOfFoo = myData.Select(x => new ExpandoObject{
someProperty = x.prop1,
someOtherProperty = x.prop2
});
Run Code Online (Sandbox Code Playgroud)
显然,我已经尝试过上面的代码没有成功,但似乎我错过了一些东西.
doc*_*ess 38
您应该能够在没有声明任何类型的情况下创建新的匿名对象:
var listOfFoo = myData.Select(x => new {
someProperty = x.prop1,
someOtherProperty = x.prop2
});
Run Code Online (Sandbox Code Playgroud)
Ser*_*rvy 12
没有什么可以阻止你使用Select
返回ExpandoObject的集合,你只是没有正确构建ExpandoObject
.这是一种方式:
var listOfFoo = myData.Select(x =>
{
dynamic expando = new ExpandoObject();
expando.someProperty = x.prop1;
expando.someOtherProperty = x.prop2;
return (ExpandoObject)expando;
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23501 次 |
最近记录: |