在lambda表达式的谓词中使用和

时间:2009-06-29 13:30:14

标签: c# .net lambda

如何在lambda表达式的谓词中使用“And”。我正在努力实现类似的目标 这
   新的Class1(“测试”,状态=>状态== 18&& 19&& 20)

请回复

由于 沙拉斯

2 个答案:

答案 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) ;