Операция XOR для двух булевых полей - PullRequest
46 голосов
/ 06 июля 2010

Учитывая два логических значения, как найти самый элегантный один вкладыш , который вычисляет операцию XOR в C #?

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

Ответы [ 4 ]

71 голосов
/ 06 июля 2010
bool xorValue = bool1 ^ bool2;
63 голосов
/ 06 июля 2010

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

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

if (X != Y)...

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

18 голосов
/ 06 июля 2010

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

bool result = x ^ y // x XOR y
0 голосов
/ 06 июля 2010

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

A ^ B ? TrueOperation() : FalseOperation();
...