【发布时间】:2021-01-21 07:25:28
【问题描述】:
我有这行代码
bool b1 = true;
bool b2 = true;
bool b3 = true;
bool areDifferent = b1 ^ b2 ^ b3;
如果只有 2 个布尔值 (true XOR true) // false,这可行。
但它不适用于 n 个布尔值 (true XOR true XOR true) // true
问题:用 C# 逻辑运算符(AND、OR、XOR、XNOR)确定所有值是否相等(或不相等)的正确通用方法是什么
【问题讨论】:
-
here 是一个非常相似的问题
-
(使用 LINQ,我会使用
myBoolList.Distinct().Count()==1) -
true XOR true将导致 false 并且将与true进行异或,这将返回 true。这不是正确的逻辑吗? -
虽然骗子大约是 3 个值,但有多个值的答案。请仔细阅读。
-
Dupe 是关于三元异或的,它需要一个布尔值才能为真。这个问题是询问查看 3 个值是否相同,这是一个不同的问题。这 2 个问题仅与 2 个值等价。