检查许多布尔值

本文关键字:许多布 检查 | 更新日期: 2023-09-27 18:20:34

我有许多布尔变量,如下所示:

Boolean A;
Boolean B;
Boolean C;
Boolean D;
Boolean E;
Boolean F;
...

我想确保所有这些都是假的,或者最多只有一个是真的。

有没有一种快速的方法可以在不使用大量国际单项体育联合会的情况下做到这一点?

检查许多布尔值

是。将所有布尔值放入一个列表中,然后使用.All().Any()扩展方法。

var options = new List<bool>{A, B, C, D, E, F, etc.};
var allAreFalse = options.All(b => !b);
var atLeastOneIsTrue = options.Any(b => b);
var moreThanOneIsTrue = options.Where(b => b).Skip(1).Any();

PS——很可能您一开始并不想将所有这些布尔值声明为单独的变量。类似的代码通常表示您将数据表示为代码,并且应该使用数据结构来表示和操作这些值。

将它们添加到列表中并计算真实值:

var lst = new[] { A, B, C, D, E };
var res = lst.Count(x=>x) <= 1;
boolean[] bools = new boolean[...];
// add all bools to list
if (!bools.All()) {
    // All are false
}
if (bools.Any()){
    // One or more are true
}
 unsigned long var64 = (X & A<<1 & B<<2 & C<<3 .... Z <<63)+1

如果操作系统、项目和cpu为64位x64,则使var64为零;