如何在lambda表达式的谓词中使用“And”。我正在努力实现类似的目标
这
新的Class1(“测试”,状态=>状态== 18&& 19&& 20)
请回复
由于 沙拉斯
答案 0 :(得分:10)
你需要将你的条件陈述分解为3种不同的评价 - 你不能像你一样将它们组合起来。
Status => Status == 18 && Status == 19 && Status == 20
虽然,我猜你在这里想要一个或者一个操作符,因为Status不能有18,19和20的值。如果你想做一个位掩码,你想要&操作员,甚至是18,19和18的位掩码。 20对我来说没有多大意义(虽然谁知道你的用例)。
Status => Status == 18 || Status == 19 || Status == 20
答案 1 :(得分:0)
到目前为止的答案很好 - 还要考虑.Any
List<int> favNumbers = new List<int>(18, 19, 20);
Func<int, bool> pred =
Status => favNumbers.Any(f => f == Status) ;