2015-06-13 28 views
3

我需要檢查未知數量的布爾值..取決於結果它將執行相應的功能。 這裏是例子就是我尋找:如何檢查未知數量的布爾值c#

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

如果x,y,z是有序的,你可以for循環例如做進去。 – Sjoerd222888

回答

4

您可以使用LINQ了點。

如果你需要所有的布爾變量是真實的,你可以使用Any

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

如果需要,例如,其中4個正好是真實的,你可以使用Count

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

或至少一個,還有Any

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

真的很乾淨,很好回答:) – hdoghmen

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

可以使用LINQ功能All()

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

或者乾脆

var all = bool.All(x=>x); 
if(all) 
    myFunc(); 
0
if (bool.Any(m => !m) 
{ 
    // At least one bool is false 
} 
else 
{ 
    // All bools are true 
} 
0

使用Linq檢查所有值是否符合謂詞。

if(bool.All())