如果只有1个参数中的1个为真,则返回true

时间:2017-12-29 01:58:18

标签: c#

我有3个数组,如果3个数组中只有1个不为空,我想传递一个if语句。如果只有1不为空而另外2个为空,我只想传递它。

现在我有一个疯狂的if声明,并想知道它是否可以简化

if((a && !b && !c) || (!a && b && !c) || (!a && !b && c))

1 个答案:

答案 0 :(得分:4)

假设abc是布尔值,其值指示相应的数组是否为空:

(a ^ b ^ c) && !(a && b && c)

如果按顺序对三个布尔值进行异或,则当且仅当一个变量为真时或者所有三个变量都为真时才为真。因此,表达式的第二部分,以消除所有三个变量都为真的情况。