如何检查未知数量的布尔值 C#
How to check unknown number of booleans c#
我需要检查未知数量的布尔值.. 根据结果,它将执行适当的功能。
这是我正在搜索的示例:
if(bool[x] && bool[y] && bool[z] ...)
myFunc();
像这样:
var all=true;
for (var i=x; i<z; i++) if (!bool[i]) {all=false; break;}
if (all) myFunc()
或者,如果 x, y, z
不是顺序的,将它们放入列表或数组中:
int[] indices = new [] {x, y, z};
然后像这样迭代:
var all=true;
foreach (var i in indices) if (!bool[i]) {all=false; break;}
if (all) myFunc()
您可以使用 LINQ 函数 All()
:
var all = bool.All(x=>x == true);
if(all)
myFunc();
或者干脆
var all = bool.All(x=>x);
if(all)
myFunc();
您可以使用 LINQ
。
如果你需要所有的布尔值都为真,你可以使用Any
:
if (bools.All(b => b))
例如,如果您需要其中 4 个完全正确,您可以使用 Count
:
if (bools.Count(b => b) == 4)
或者至少有一个,有Any
if (bools.Any(b => b))
if (bool.Any(m => !m)
{
// At least one bool is false
}
else
{
// All bools are true
}
使用Linq检查所有值是否满足谓词。
if(bool.All())
我需要检查未知数量的布尔值.. 根据结果,它将执行适当的功能。 这是我正在搜索的示例:
if(bool[x] && bool[y] && bool[z] ...)
myFunc();
像这样:
var all=true;
for (var i=x; i<z; i++) if (!bool[i]) {all=false; break;}
if (all) myFunc()
或者,如果 x, y, z
不是顺序的,将它们放入列表或数组中:
int[] indices = new [] {x, y, z};
然后像这样迭代:
var all=true;
foreach (var i in indices) if (!bool[i]) {all=false; break;}
if (all) myFunc()
您可以使用 LINQ 函数 All()
:
var all = bool.All(x=>x == true);
if(all)
myFunc();
或者干脆
var all = bool.All(x=>x);
if(all)
myFunc();
您可以使用 LINQ
。
如果你需要所有的布尔值都为真,你可以使用Any
:
if (bools.All(b => b))
例如,如果您需要其中 4 个完全正确,您可以使用 Count
:
if (bools.Count(b => b) == 4)
或者至少有一个,有Any
if (bools.Any(b => b))
if (bool.Any(m => !m)
{
// At least one bool is false
}
else
{
// All bools are true
}
使用Linq检查所有值是否满足谓词。
if(bool.All())