使用 linq 根据多个可能值之一检查 属性

Using linq to check property against one of multiple possible values

使用 linq 根据多个可能值之一检查 属性。在这种情况下,当状态为 2 或 3 时?这可以在没有 or 运算符的情况下完成吗?

var x = (from b in books
         where b.statusCode.Contains(2, 3))
         select new ...

您可以将值列表设置为 List<int>,将其命名为 ValueList,然后在您的 where 行上:

where ValueList.Contains(b.statusCode)

这应该将 statusCode 与所有列表值和 return 匹配的记录进行比较,您将获得动态列表的好处,该列表可以用不同的值重置为 return 其他状态码的集合。

可以这样做(假设statusCode是int)

var values = new int[] { 2, 3 };

var x = (from b in books
     where values.Contains(b.statusCode))
     select new ...

或者您可以尝试像这样内联它:

    var x = (from b in books
     where (new int[] { 2, 3 }.Contains(b.statusCode)))
     select new ...