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

发布于 2024-07-26 03:23:26 字数 167 浏览 3 评论 0原文

如何在 lambda 表达式的谓词中使用“And”。 我正在努力实现类似的目标 这个
new Class1("Test",Status => Status == 18 && 19 && 20)

请回复

谢谢 萨拉特

how to use "And" in predicate in lambda expression. I am trying to achieve something like
this
new Class1("Test",Status => Status == 18 && 19 && 20)

Please reply

Thanks
Sharath

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

胡大本事 2024-08-02 03:23:26

您需要将条件语句分解为 3 个不同的评估 - 您不能像以前那样将它们组合起来。

Status => Status == 18 && Status == 19 && Status == 20

不过,我猜您在这里需要一个 or 运算符,因为 Status 的值不能为 18、19 和 20。如果您尝试执行位掩码,则需要 & 。 运算符,甚至还有 18、19 和 18、19 的位掩码。 20 对我来说没有多大意义(尽管谁知道你的用例)。

Status => Status == 18 || Status == 19 || Status == 20

You need to break up your conditional statement into 3 different evaluations - you cannot combine them like you have.

Status => Status == 18 && Status == 19 && Status == 20

Although, I'm guessing you're wanting an or operator here, because Status cannot have a value of 18, 19, AND 20. If you're trying to do a bitmask, you want the & operator, and even then a bitmask of 18, 19 & 20 doesn't make a lot of sense to me (though who knows your use case).

Status => Status == 18 || Status == 19 || Status == 20
飞烟轻若梦 2024-08-02 03:23:26

到目前为止很好的答案 - 也考虑 .Any

List<int> favNumbers = new List<int>(18, 19, 20);
Func<int, bool> pred =
  Status => favNumbers.Any(f => f == Status) ;

Good answer so far - consider also .Any

List<int> favNumbers = new List<int>(18, 19, 20);
Func<int, bool> pred =
  Status => favNumbers.Any(f => f == Status) ;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文