检查四个布尔变量是否具有相等的值,不明显?

thk*_*ang 10 c# boolean

我有四个bool变量,比如说:

bool a=true;
bool b=false;
bool c=true;
bool d=false;
Run Code Online (Sandbox Code Playgroud)

然后我想检查那四个是否相等.然而;

Console.WriteLine(true == false == true == false);
true
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我认为这是因为一个方程的评估顺序,从左到右:

((true == false) == true) == false
(false == true) == false
false == false
true
Run Code Online (Sandbox Code Playgroud)

那么检查所有N> 2个布尔变量是否相等的正确方法是什么?

I4V*_*I4V 7

if(a==b && a==c && a==d)
Run Code Online (Sandbox Code Playgroud)

如果你有不同数量的bool不仅4

var bools = new bool[] { a, b, c, d };
var areAllEqual = bools.Skip(1).All(b=>b==bools[0]);
Run Code Online (Sandbox Code Playgroud)


dut*_*tzu 3

一个明显的方法是将它们配对并使用 .Equals() 而不是 ==


检查这个替代方案,它可能是你想要的 -多个变量之间的相等比较