C# 如果3个参数中只有1个参数为真,则返回真
我有3个数组,如果3个数组中只有1个不是空的,我想传递一个if语句。我只想通过它,如果只有1不是空的,其他2是空的 现在我有一个疯狂的if语句,我想知道它是否可以简化C# 如果3个参数中只有1个参数为真,则返回真,c#,C#,我有3个数组,如果3个数组中只有1个不是空的,我想传递一个if语句。我只想通过它,如果只有1不是空的,其他2是空的 现在我有一个疯狂的if语句,我想知道它是否可以简化 if((a && !b && !c) || (!a && b && !c) || (!a && !b && c)) 假设a,b和c是布尔值,其值指示对应数组是否为空: (a^b^c)和&!(a&b&c) 如果按顺序对三个布尔值进行异或
if((a && !b && !c) || (!a && b && !c) || (!a && !b && c))
假设
a
,b
和c
是布尔值,其值指示对应数组是否为空:
(a^b^c)和&!(a&b&c)
如果按顺序对三个布尔值进行异或运算,则当且仅当一个变量为真或三个变量均为真时,该值才为真。因此,表达式的第二部分,以消除所有三个变量均为真的情况。
var bob=new int[]{a,b,c};var oneMatch=bob.Count(z=>z.Length>0)==1代码>将int
更改为任何类型。我假设你的数组被称为a
,b
和c
。你一直使用it
这个词,而且it
也很难理解你指的是什么。其次,你的代码没有真正的意义。。什么是abc
?如果它们是数组,它们就没有意义。我在想,让a
,b
,c
等于1
如果为真,0
否则,只需添加它们。检查总和是否为1
。a、b和c数组或布尔值可能重复?