我试图对DataTable对象执行LINQ查询,奇怪的是,我发现对DataTable执行这样的查询并不简单。例如:
var results=来自myDataTable中的myRow
其中results.Field(“RowNo”)==1
选择结果;
这是不允许的。我怎样才能让这样的东西工作
我很惊讶LINQ查询在数据表上是不允许的
由于DataRowCollection未实现IEnumerable<;功能,因此无法查询DataTable的行集合;T>。您需要为DataTable使用AsEnumerable()扩展名。像这样:
var results=来自myDataTable.AsEnumerable()中的myRow
其中myRow.Field<;int>;(“RowNo”)==1
选择myRow;
正如@Keith所说,您需要添加对System.Data.DataSetExtensions的引用
AsEnumerable()返回IEnumerable<;数据行>。如果需要转换IEnumerable<;数据行></对于数据表,请使用CopyToDataTable()扩展名
下面是使用Lambda表达式的查询
var result=myDataTable
.可计算的()
。其中(myRow=>;myRow.Field<;int>;(";RowNo";)==1);