【发布时间】:2015-09-03 13:44:06
【问题描述】:
我必须检查 List<bool> 的所有元素是 true 还是所有元素都是 false
List<bool> b1 = new List<bool>() { true, true, true, true }; //valid
List<bool> b2 = new List<bool>() { false, false, false, false }; //valid
List<bool> b3 = new List<bool>() { true, false, false, true }; //not valid
是否有 Linq 方法代替我当前的循环?
bool isValid = true;
for (int i = 1; i < b3.Count; i++)
{
if (b3[i] != b3[i - 1])
isValid = false;
}
【问题讨论】:
-
你的意思是 LINQ
All()扩展方法...? -
这会比
All快吗:var isAllTrue = !b3.Any(x => !x); -
Enumerable.Range(0, b3.Length - 1).All(i => b3[i] == b3[i+1)