我想从数据行中选择一些字段,例如:
var result = datatable.AsEnumerable()
.Select(x => new { x.Field<string>("Field1"), x.Field<string>("Field2")});
不幸的是,这不起作用说:
无效的匿名类型成员声明符。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。
我怎样才能达到我想要的?
编辑:似乎(至少)有两种方法可以实现它:
给他们起名字:
var 结果 = 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")));