Операция "исключающее ИЛИ" для двух булевых полей

Учитывая две булевских переменные, как придумать самый изящный один лайнер, который вычисляет операцию "исключающее ИЛИ" в C#?

Я знаю, что можно сделать это комбинацией switch или if else но это сделало бы мой код довольно ужасным.

46
задан Graviton 6 July 2010 в 07:02
поделиться

4 ответа

bool xorValue = bool1 ^ bool2;
71
ответ дан 26 November 2019 в 20:04
поделиться

В C# есть логический оператор XOR ^. Вот как это делается.

bool result = x ^ y // x XOR y
18
ответ дан 26 November 2019 в 20:04
поделиться

Хорошо, чтобы добавить контекст: Вы можете посмотреть здесь Таблицы

Там вы можете увидеть, что «исключающее ИЛИ» в основном то же самое, что «не равно». Итак, вы можете просто использовать это (с логическим значением):

if (X != Y)...

Но если вы хотите напрямую показать людям, вы имеете в виду «XOR», просто используйте здесь другие ответы.

64
ответ дан 26 November 2019 в 20:04
поделиться

Думаю, это должно помочь:

A ^ B ? TrueOperation() : FalseOperation();
0
ответ дан 26 November 2019 в 20:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: