且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

对数据表的 LINQ 查询

更新时间:2023-12-01 20:28:04

您不能查询 DataTableRows 集合,因为 DataRowCollection 没有实现 IEnumerable.您需要为 DataTable 使用 AsEnumerable() 扩展.像这样:

You can't query against the DataTable's Rows collection, since DataRowCollection doesn't implement IEnumerable<T>. You need to use the AsEnumerable() extension for DataTable. Like so:

var results = from myRow in myDataTable.AsEnumerable()
where myRow.Field<int>("RowNo") == 1
select myRow;

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

And as @Keith says, you'll need to add a reference to System.Data.DataSetExtensions

AsEnumerable() 返回 IEnumerable.如果您需要将 IEnumerable 转换为 DataTable,请使用 CopyToDataTable() 扩展.

AsEnumerable() returns IEnumerable<DataRow>. If you need to convert IEnumerable<DataRow> to a DataTable, use the CopyToDataTable() extension.

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

Below is query with Lambda Expression,

var result = myDataTable
    .AsEnumerable()
    .Where(myRow => myRow.Field<int>("RowNo") == 1);