C#列出where子句

时间:2017-11-05 18:41:17

标签: c# asp.net list foreach where

我想用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 };

你有什么想法吗?

感谢您的回复。 ; - )

2 个答案:

答案 0 :(得分:1)

您的结果变量是整数列表。您可以检查列表中是否包含带

的枚举classid
var events = School.Events.ToList().Where(xx => result.Contains(xx.ClassID));

答案 1 :(得分:1)

结果也是一个列表。这就是你需要像这样检查的原因:

var events = School.Events.Where(xx => result.Contains(xx.ClassID));