C#if(strValue =="FALSE"| strValue =="TRUE")

Jad*_*e M 1 c#

我有一个包含值为TRUE或FALSE或null的字符串,该值是从我无法控制的文本文件中读取的.什么是使用'|'的最佳方式 用'if'?记住strValue也可以为null,如果strValue为null,那么我不想输入if语句.

if (strValue == "FALSE" | strValue == "TRUE")
{
  //do stuff
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Meh*_*ari 20

if (strValue == "FALSE" || strValue == "TRUE") {
   // ...
}
Run Code Online (Sandbox Code Playgroud)

受益于短路.如果第一个表达式求值,则不会尝试第二个表达式true.

如果您需要不区分大小写的比较:

if ("FALSE".Equals(strValue, StringComparison.InvariantCultureIgnoreCase) || 
    "TRUE".Equals(strValue, StringComparison.InvariantCultureIgnoreCase)) {
   // ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,调用.ToUpper().ToLower()打开null将抛出NullReferenceException.