给出两个布尔值,在C#中如何编写最优雅的一行代码来计算异或操作?
我知道可以通过switch
或if
else
的组合来实现,但这会使我的代码变得很丑陋。
bool xorValue = bool1 ^ bool2;
补充一些上下文信息:
你可以在这里查看表格
在那里,你可以看到“异或”基本上与“不等于”相同。所以你可以使用这个(用布尔值):
if (X != Y)...
但如果你想直接向人们展示你的意思是“XOR”,只需使用这里的其他答案即可。
C#有逻辑异或运算符 ^
。以下是如何使用它的方法。
bool result = x ^ y // x XOR y
我认为这应该会有所帮助:
A ^ B ? TrueOperation() : FalseOperation();
^^
运算符是因为短路异或不可能,因为在所有情况下都必须评估两个值。 - Dave Cousineaubool ElegantResult = ElegantBoolean1 ^ ElegantBoolean2;
更加优雅……但我想这真的取决于观察者的眼光。 - Code Jockey