我们是不能直接对DataTable做LINQ查询,DataRowCollection是没有实现IEnumerable<T>。有一些方法可以间接实现对DataTable执行LINQ查询。
AsEnumerable()
使用DataTable的扩展AsEnumerable(),把DataTable转换为IEnumerable<DataRow>。
var results = from myRow in myDataTable.AsEnumerable()
where myRow.Field<int>("RowNo") == 1
select myRow;
DataTable.Rows
调用DataTable的Rows,把row转换为DataRow。
var results = from DataRow myRow in myDataTable.Rows
where (int)myRow["RowNo"] == 1
select myRow