linq使用IN运算符分割逗号值

时间:2016-05-03 12:43:56

标签: c# sql linq

我得到以下

的结果
string[] proj = Pid.Split(',');

" 1032,1222" - > [0] = 1032,[1] = 1222

但我想在LINQ查询中使用。这是我的LINQ查询。在哪里使用它以及如何使用它?

string[] proj = Pid.Split(',');

var data2 = (from p in Db.emp.AsEnumerable()
             join r in Db.use on p.EmployeeId equals r.EmployeeId
             join q in Db.proo on p.EmployeeId equals q.EmpId
             where (q.IsDelete == false && p.IsDelete == false && p.RoleID != 1 && p.RoleID != 2 && q.ProId == Convert.ToInt32(Pid))
             select new GroupSelectedModel { 
                 Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(p.FirstName + " " + p.LastName), 
                 Value = r.UserId.ToString(),
                 StatusId = Convert.ToInt32(p.Status)
             })
            .Distinct().ToList().OrderBy(r => r.Text);
return data2.OrderBy(p => p.StatusId).ToList();  

请检查上述代码。

1 个答案:

答案 0 :(得分:0)

当您需要IN时,您必须将其反转,然后使用Contains()。你的帖子不是很清楚,但我认为你要的是这样的(请注意你需要使用List代替数组):

List<string> proj = new List<string>(Pid.Split(','));

where (q.IsDelete == false && p.IsDelete == false && p.RoleID != 1 && p.RoleID != 2 && proj.Contains(q.ProId))