我们能用LINQ过滤Datatable吗?

10

假设我的数据表已经被填充了数据。 在填充数据之后,我们能否再次使用 Linq 对数据表设置条件以提取数据?

假设我的数据表中有10个员工记录。 那么我们是否可以使用 Linq 查询仅提取薪资大于5000的员工记录。 我知道我们可以通过 DataTable.Select() 实现。那么如何用 Linq 来实现呢?

2个回答

13

你可以获取一个经过筛选的行集合:

var query = table.AsEnumerable()
                 .Where(row => row.Field<decimal>("salary") > 5000m);

这里使用了 AsEnumerableField 扩展方法,它们分别属于 DataTableExtensionsDataRowExtensions


2

试试这个:

                var query = (from t0 in dtDataTable.AsEnumerable()
                where t0.Field<string>("FieldName") == Filter

               select new
               {
                   FieldName  = t0.Field<string>("FieldName"),
                   FieldName2 = t0.Field<string>("FieldName2"),
                });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接