/ / Gibt true zurück, wenn nur ein Parameter von 3 wahr ist [closed] - c #

Gibt true zurück, wenn nur 1 Parameter von 3 wahr ist [geschlossen] - c #

Ich habe 3 Arrays und würde gerne eine if-Anweisung übergeben, wenn nur eines der 3 Arrays nicht leer ist. Ich möchte es nur weitergeben, wenn nur 1 nicht leer ist und die anderen 2 leer sind.

Im Moment habe ich eine verrückte if-Aussage und habe mich gefragt, ob sie vereinfacht werden kann

if((a && !b && !c) || (!a && b && !c) || (!a && !b && c))

Antworten:

4 für die Antwort № 1

Angenommen a, b, und c sind boolesche Werte, deren Werte angeben, ob das entsprechende Array leer ist oder nicht:

(a ^ b ^ c) && !(a && b && c)

Wenn Sie XOR drei boolesche Werte in Folge machen, dannwird wahr sein, und nur dann, wenn genau eine Variable wahr ist ODER wenn alle drei Variablen wahr sind. Daher der zweite Teil des Ausdrucks, um den Fall zu beseitigen, in dem alle drei Variablen wahr sind.