【问题标题】:C# List inside where clauseC# List 在 where 子句中
【发布时间】:2018-04-17 22:09:13
【问题描述】:

我想创建一个带有 where 子句的查询,它将遍历列表中的每个元素。

但我得到“运算符 '==' 不能应用于 'int' 和 'List' 类型的操作数。

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 };

你有什么想法吗?

感谢您的回复。 ;-)

【问题讨论】:

  • result.Contains(xx.ClassId)?如果这是答案,那应该需要 2 秒的谷歌搜索......如果不是,你需要更好地解释你想要实现的目标。

标签: c# asp.net list foreach where


【解决方案1】:

result 也是一个列表。这就是为什么你需要像这样检查:

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

【讨论】:

    【解决方案2】:

    您的结果变量是一个整数列表。您可以使用

    检查您的列表是否包含枚举的classid
    var events = School.Events.ToList().Where(xx => result.Contains(xx.ClassID));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多