【问题标题】:If Conditional Statement Checking always check only the first condition in C# ASP.NET [closed]如果条件语句检查始终只检查 C# ASP.NET 中的第一个条件 [关闭]
【发布时间】:2021-04-25 13:37:22
【问题描述】:

我有一些使用 If..Then..Else.. 语句的检查条件,但我发生了一些事情,让我一直对这个问题感到困惑。我的代码是:

if ( !context.APIPOS_ExportPos.Any(x => x.CustomerRef == HAWBToUpdate) || !context.Export_Reguler.Any(y => y.CustomerRef == HAWBToUpdate) ) 
{
   //some complicated operation goes here...
}

总是检查OR 运算符(||)之前的第一个条件,不检查OR 运算符之后的条件。

我应该怎么做才能解决这个问题?非常感谢您的帮助

【问题讨论】:

  • 您正在使用 OR 运算符。所以只有一个条件是真实的。如果第一个条件返回 true,则不会检查第二个条件。只有当第一个条件返回 false 时,才会检查第二个条件。
  • 请尝试重新表述您的问题,以便更清楚。不清楚您的问题是什么。
  • 如果你使用 AND 运算符,两个条件都会被检查,并且它们都必须为真才能执行 if 块中的代码
  • 如果使用单 | (或)即使第一个为真,它也会评估两者。如果第二个条件执行必要的功能,这很有用。 (但这是不好的形式)
  • 你读过the documentation 的布尔逻辑运算符吗?它应该回答您关于该主题的所有问题。因缺乏研究努力而投反对票。如果文档没有回答某些问题,请澄清问题。

标签: c# asp.net entity-framework asp.net-web-api asp.net-web-api2


【解决方案1】:

你为什么不直接使用 && 而不是 ||。 您的代码的问题是,当条件为真时,它不需要检查进一步的条件。

【讨论】:

  • 但是如果第一个条件是false,则不需要检查进一步的条件。如果 OP 希望无论发生什么都检查两者,他可能需要使用 |& 而不是 ||&&
  • 是的,这是真的,但是如果你要根据任何条件做某事,那么你为什么需要同时评估两者。这不只是多余的吗。我的意思是,如果有什么是真的,那么整个事情都是真的。
  • 如果您正在检查的内容有副作用并且您希望这些影响发生,则可能需要它
猜你喜欢
  • 2020-12-10
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多