2010-07-06 8 views
35

Gegeben zwei boolean, wie man mit der elegantesten One-Liner, dass die XOR-Operation in C# berechnet?XOR Operation für zwei boolesche Feld

Ich weiß, man kann dies durch eine Kombination von switch oder ifelse tun, aber das würde meinen Code ziemlich hässlich machen.

Antwort

59
bool xorValue = bool1^bool2; 
+3

Ich vermute, dass es keinen '^^' Operator gibt, da ein Kurzschließen von XOR nicht möglich ist, da Sie beide Werte in jedem Fall auswerten müssen. –

+3

Ich persönlich denke, dass 'bool ElegantResult = ElegantBoolean1^ElegantBoolean2;' ist ein wenig eleganter ... aber ich denke, es ist wirklich im Auge des Betrachters –

48

Ok einige Kontexte hinzuzufügen: Sie können hier Tables

Dort kann man sehen, dass „exklusiv oder“ als „nicht gleich“ im Grunde das gleiche ist. So konnte man nur diese verwenden (mit boolean):

if(X != Y)... 

Aber wenn Sie direkt wollen den Menschen zeigen, du meinst „XOR“ nur die anderen Antworten hier verwenden.

+0

ich diese Lösung geliebt. Sollte auf sein. – aod

1

ich denke, es sollte helfen:

A^B ? TrueOperation() : FalseOperation(); 
Verwandte Themen