【发布时间】:2020-10-09 16:26:52
【问题描述】:
我有 4 个布尔值,它可以是一个、多个的组合或没有。我的最终输出是,我知道哪些布尔值设置为 true。
例如:只有一个/只有一个和两个/只有一个、两个和三个/全部一、二、三、四/只有二和三/等等..
我开始使用 If - 语句手动编写这些代码,但后来我开始意识到: 1:这段代码看起来很混乱。 2:这个方法会很费力 3. 应该有更好的方法吧?
【问题讨论】:
-
您是否考虑过切换到 flag enum 或者您是否受限于布尔值?
-
如果你有一个
booleans的集合,比如bool[] booleans,你可以使用Linq查询:if (booleans.All(x => x)) {...}或if (booleans.Count(x => x) == 1) {...} -
最终输出是什么?任何解决方案都将针对此,因为您似乎在说
if(b1&&b2)会做一些与if(b2&&b3)不同的事情,所以这不仅仅是关于正确的布尔值的数量 -
这里有点不清楚你想要什么。只计算真值的个数就够了吗,如果等于长度就是全部,如果0为无,其他都是多个的组合。
-
感谢您的所有回复!我的最终输出是,我知道哪些布尔值设置为 true :-)
标签: c# boolean combinations