我想用where子句创建一个查询,该子句将遍历列表中的每个元素。
但我得到"运营商' =='不能应用于' int'类型的操作数和'列表'。
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是不可能的,因为在方法结束时我有:
return new JsonResult { Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
你有什么想法吗?
感谢您的回复。 ; - )
答案 0 :(得分:1)
您的结果变量是整数列表。您可以检查列表中是否包含带
的枚举classidvar events = School.Events.ToList().Where(xx => result.Contains(xx.ClassID));
答案 1 :(得分:1)
结果也是一个列表。这就是你需要像这样检查的原因:
var events = School.Events.Where(xx => result.Contains(xx.ClassID));