C#对DataTable做LINQ查询

时间:2022-06-01 18:06:50

我们是不能直接对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