C# LINQ中的sql IN子句
我试图通过C# LINQ中的sql IN子句,c#,linq,C#,Linq,我试图通过Contains() 我正在做以下工作: listData.Where(pr => pr.CD.Contains(cd)).Select(pr => pr.dept_cd).Distinct() 如果cd仅为一个值,则此选项有效,但如果cd为逗号分隔的字符串,则此选项无效 在LINQ的情况下,如何实现从表中的列中选择*(值1,值2…) var selected = from u in users where new[] { "IT", "Ad
Contains()
我正在做以下工作:
listData.Where(pr => pr.CD.Contains(cd)).Select(pr => pr.dept_cd).Distinct()
如果cd
仅为一个值,则此选项有效,但如果cd
为逗号分隔的字符串,则此选项无效
在LINQ的情况下,如何实现从表中的列中选择*(值1,值2…)
var selected = from u in users
where new[] { "IT", "Admin", "HR" }.Contains(u.dept_cd)
select u;
或者,如果您有字符串的列表
,则应将其用作
List<string> dept= new List<string>(){"HR", "IT"};
var selected = from u in users
where dept.Contains(u.dept_cd)
select u;
List dept=newlist(){“HR”,“IT”};
所选变量=来自用户中的u
部门包含的位置(u.dept\u cd)
选择u;
它应该是相反的。如下图所示:
listData.Where(pr => cd.Contains(pr.CD).Select(pr => pr.dept_cd)).Distinct();
不确定语法。但这就是方法。这里,cd是逗号分隔的字符串或字符串数组您是指类似于cd.Split(',').Contains(pr.cd)
(尽管您可能希望拆分为前一行上的数组,而不是作为Linq表达式的一部分)?请查看下面的链接[带Linq的IN子句][1]: