現在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
});
Select
を使用してExpandoObjectのコレクションを返すことを妨げるものは何もありません。ExpandoObject
を適切に構築していないだけです。これが1つの方法です。
var listOfFoo = myData.Select(x =>
{
dynamic expando = new ExpandoObject();
expando.someProperty = x.prop1;
expando.someOtherProperty = x.prop2;
return (ExpandoObject)expando;
});