如何检查未知数量的布尔值c#

时间:2015-06-13 15:28:39

标签: c# unity3d-editor

我需要检查未知数量的布尔值。根据结果,它将执行相应的功能。 以下是我正在搜索的示例:

if(bool[x] && bool[y] && bool[z] ...)
   myFunc();

5 个答案:

答案 0 :(得分:4)

您可以使用LINQ

如果你需要所有的bool都是真的,你可以使用Any

if (bools.All(b => b))

如果您需要,例如,其中4个完全正确,您可以使用Count

if (bools.Count(b => b) == 4)

或者至少有一个Any

if (bools.Any(b => b))

答案 1 :(得分:1)

您可以使用LINQ函数All()

var all = bool.All(x=>x == true);
if(all)
    myFunc();

或只是

var all = bool.All(x=>x);
if(all)
    myFunc();

答案 2 :(得分:0)

这样的事情:

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()

答案 3 :(得分:0)

if (bool.Any(m => !m)
{
    // At least one bool is false
}
else
{
    // All bools are true
}

答案 4 :(得分:0)

使用Linq检查所有值是否符合谓词。

DoubleEndedIterator