Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ中的sql IN子句_C#_Linq - Fatal编程技术网

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]: