C#在where子句中列出
我想用where子句创建一个查询,它将遍历列表中的每个元素 但我得到的“运算符”==”不能应用于“int”和“List”类型的操作数C#在where子句中列出,c#,asp.net,list,foreach,where,C#,Asp.net,List,Foreach,Where,我想用where子句创建一个查询,它将遍历列表中的每个元素 但我得到的“运算符”==”不能应用于“int”和“List”类型的操作数 var result = (from n in School.Teacher where n.UserID == ID select n.ClassID).Distinct().ToList(); var events = School.Events.To
var result = (from n in School.Teacher
where n.UserID == ID
select n.ClassID).Distinct().ToList();
var events = School.Events.ToList().Where(xx => xx.ClassID == result);
我不是在寻找这样的解决方案:
var events = School.Events.ToList().Where(xx => xx.ClassID == result[0] || xx.ClassID == result[1] || xx.ClassID == result[2]);
因为列表中的记录数每次都可能不同
Foreach before查询不可能,因为在方法末尾,我有:
return new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
你有什么想法吗
感谢您的回复。;-您的结果变量是一个整数列表。您可以使用
var events = School.Events.ToList().Where(xx => result.Contains(xx.ClassID));
您的结果变量是一个整数列表。您可以检查列表是否包含枚举的classid,并使用
var events = School.Events.ToList().Where(xx => result.Contains(xx.ClassID));
结果也是一个列表。这就是为什么您需要这样检查:
var events = School.Events.Where(xx => result.Contains(xx.ClassID));
结果也是一个列表。这就是为什么您需要这样检查:
var events = School.Events.Where(xx => result.Contains(xx.ClassID));
result.Contains(xx.ClassId)
?如果答案是这样,那应该用谷歌搜索2秒钟……如果不是这样,你需要更好地解释你想要实现的目标。result.Contains(xx.ClassId)
?如果这是答案,那应该花2秒钟的时间在谷歌上搜索……如果不是,你需要更好地解释一下你想要实现的目标。