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

Ugl*_*leh -3 c#

我有 3 个数组,如果 3 个数组中只有 1 个不为空,我想传递一个 if 语句。我只想在只有 1 个不为空且其他 2 个为空的情况下传递它。

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

if((a && !b && !c) || (!a && b && !c) || (!a && !b && c))
Run Code Online (Sandbox Code Playgroud)

uba*_*dub 6

假设ab、 和c是布尔值,其值指示相应的数组是否为空:

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

如果按顺序异或三个布尔值,当且仅当只有一个变量为 true 或所有三个变量都为 true 时,它​​才为 true。因此,表达式的第二部分是为了消除所有三个变量都为 true 的情况。