我们可以用LINQ过滤Datatable吗?

时间:2011-04-25 06:14:32

标签: linq

假设我的数据表充满了数据。 填充数据后,我们可以再次使用linq在数据表上添加一些条件来提取数据。

假设我的数据表有10个员工记录。 因此,我们可以使用linq查询仅提取薪水大于5000的员工。 我知道我们可以实现它datatable.select()。如何使用linq实现此目的?

2 个答案:

答案 0 :(得分:13)

您可以获得一组经过滤的行,是:

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

分别使用DataTableExtensionsDataRowExtensions中的AsEnumerableField扩展方法。

答案 1 :(得分: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"),
                });