假设我有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;
问:有没有其他的方法,在可读性/理解性方面更好
虽然就我个人而言,我更喜欢您的第一种方法,但下面的方法也同样有效。
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);