使用linq检查属性与多个可能的值之一。在这种情况下,当状态为2或3时,是否可以不使用or运算符?可以不使用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
对照所有的列表值,并返回匹配的记录,这样你就得到了一个动态列表的好处,它可以用不同的值来重置,以返回其他状态码的集合。
可以这样做(假设 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 ...