我有一个由循环填充的布尔数组。拥有该数组的方法需要返回一个布尔值。我可以这样做:
bool[] Booleans = new bool[4];
// do work - fill array
return (Booleans[0] && Booleans[1] && Booleans[2] && Booleans[3]);
所以,如果我有:T,T,F,T
,我会得到F
,因为数组中有一个或者它会发回别的东西还是只是一起崩溃?
答案 0 :(得分:14)
单个false
将导致false
以布尔AND
逻辑返回。
你也可以改写为:
return Booleans.All(b => b);
为了完整起见,或者如果LINQ不是一个选项,你可以通过循环实现相同的目的:
var list = new List<bool> { true, false, true };
bool result = true;
foreach (var item in list)
{
result &= item;
if (!item)
break;
}
Console.WriteLine(result);
对于小样本你所拥有的是好的,但随着项目数量的增长,上述方法之一将使代码更加友好。
答案 1 :(得分:0)
如果必须处理数组并且只返回一个布尔值,那么最好的方法是将值设置为true,然后循环直到值为false,或者到达循环的结尾。
这样您就不必处理超过第一个false值,因为这会使整个结果为false。
如何循环取决于您使用的是哪个版本的.NET。