数据表上的LINQ查询

我试图对DataTable对象执行LINQ查询,奇怪的是,我发现对DataTable执行这样的查询并不简单。例如:

var results=来自myDataTable中的myRow
其中results.Field(“RowNo”)==1
选择结果;

这是不允许的。我怎样才能让这样的东西工作

我很惊讶LINQ查询在数据表上是不允许的

由于DataRowCollection未实现IEnumerable<功能,因此无法查询DataTable集合;T&gt。您需要为DataTable使用AsEnumerable()扩展名。像这样:

var results=来自myDataTable.AsEnumerable()中的myRow
其中myRow.Field<int>(“RowNo”)==1
选择myRow;

正如@Keith所说,您需要添加对System.Data.DataSetExtensions的引用

AsEnumerable()返回IEnumerable&lt;数据行&gt。如果需要转换IEnumerable&lt;数据行&gt</对于数据表,请使用CopyToDataTable()扩展名

下面是使用Lambda表达式的查询

var result=myDataTable
.可计算的()
。其中(myRow=&gt;myRow.Field&lt;int&gt;(&quot;RowNo&quot;)==1);

发表评论