在linq中的where条件中传递列表值,用于过滤数据表中的数据

时间:2012-10-04 17:17:57

标签: linq list datatable

我要求我有一个string []数组(其id值为分隔值)和dt为datatable。

dt的列名为Id,empname,names。

现在我想使用linq查询过滤id不在(string []值)的数据表中的数据。

代表:

string[] ids= [2,4,6];

dt=  id      empname     designation
    ----     -------     ------------
     1       robert       trainer
     2       thomas       HRA
     3       John         JE
     4       kapil        SE
     5       sachin       SSE
     6       Rahul        Manager

现在我想要一个linq查询,它将我的dt返回为:

 id      empname     designation
----     -------     ------------
 1       robert       trainer 
 3       John         JE
 5       sachin       SSE

1 个答案:

答案 0 :(得分:1)

您可以使用LINQ To DataTable:

var result = dt.AsEnumerable()
               .Where(row => !ids.Contains(row.Field<string>("Id"));