次のようなことを行うデータ行からいくつかのフィールドを選択したいと思います。
var result = datatable.AsEnumerable()
.Select(x => new { x.Field<string>("Field1"), x.Field<string>("Field2")});
残念ながら、これは次のように機能していません。
匿名タイプのメンバー宣言子が無効です。匿名型のメンバーは、メンバーの割り当て、単純な名前、またはメンバーアクセスを使用して宣言する必要があります。
どうすれば私が望むことを達成できますか?
編集:それを達成するために(少なくとも)2つの方法があるようです:
名前'日:
var result = datatable.AsEnumerable()。Select(x => new {{ Field1 = x.Field( "Field1")、 Field2 = x.Field( "Field2") });
新しいオブジェクトを作成します
クラスがあるとしましょう
class MyClass
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public MyClass(string field1, string field2)
{
this.Field1 = field1;
this.Field2 = field2;
}
}
次のことができます。
var result = datatable.AsEnumerable()
.Select(x => new MyClass(x.Field<string>("Field1"), x.Field<string>("Field2")));