基于过滤器重新查询linq查询

时间:2017-01-16 12:38:58

标签: linq

我有一个数据表,然后我想查询表并过滤数据依赖多次。我有以下

 DataTable results = new DataTable();

 //fill dt from sql query

 var linqResult = from myRow in results.AsEnumerable()
        select myRow;

if (!string.IsNullOrEmpty(txtFilterName.Text))
{
    linqResult = linqResult.Where(r => linqResult.name.ToLower.Contains(txtFilterName.Text.ToLower()));
}

我一直收到错误

'EnumerableRowCollection<DataRow>' does not contain a definition for 'name' and no extension method 'name' accepting a first argument of type 'EnumerableRowCollection<DataRow>' 
Where name refers to the field name in the datatable

任何人都可以告诉我我做错了什么

1 个答案:

答案 0 :(得分:0)

错误消息不言自明。

linqResultIEnumerable<DataRow>,没有name属性。如果您要选择name列,可以使用Field - DataRow - 扩展方法:

linqResult = linqResult.Where(r => r.Field<string>("name").ToLower.Contains(txtFilterName.Text.ToLower()));