提问者:小点点

确定值是否不同


假设我有4个变量

bool value1 = false;
bool value2 = false;
bool value3 = true;
bool value4 = false;

并且all不具有相同的值(all为trueall为false)

我发现了两种方法,反正没有一种看起来容易理解。

bool areDifferent = !(value1 == value2 == value3 == value4);

bool areDifferent = new[] { value1, value2, value3, value4 }.Distinct().Count() > 1;

问:有没有其他的方法,在可读性/理解性方面更好


共1个答案

匿名用户

虽然就我个人而言,我更喜欢您的第一种方法,但下面的方法也同样有效。

    bool value1 = false;
    bool value2 = false;
    bool value3 = true;
    bool value4 = false;
    
    var values = new[] { value1, value2, value3, value4 };
    
    bool areDifferent = values.Any(v => v) && values.Any(v => !v);