确定一个列表中的所有元素是否都为真或假
确定一个列表中的所有元素是否都为真或假
我需要检查一个List
是否所有元素都为true
或者所有元素都为false
。\n
Listb1 = new List () { true, true, true, true }; //有效 List b2 = new List () { false, false, false, false }; //有效 List b3 = new List () { true, false, false, true }; //无效
\n是否有一种Linq方法可以替代我当前的循环?\n
bool isValid = true; for (int i = 1; i < b3.Count; i++) { if (b3[i] != b3[i - 1]) isValid = false; }
\n中文翻译:\n我需要检查一个List
是否所有元素都为true
或者所有元素都为false
。\n
Listb1 = new List () { true, true, true, true }; //有效 List b2 = new List () { false, false, false, false }; //有效 List b3 = new List () { true, false, false, true }; //无效
\n是否有一种Linq方法可以替代我当前的循环?\n
bool isValid = true; for (int i = 1; i < b3.Count; i++) { if (b3[i] != b3[i - 1]) isValid = false; }
问题的出现原因是需要确定一个列表中的所有元素是true还是false。解决方法是使用LINQ中的All方法来判断列表中的所有元素是否满足特定的条件。
在给定的代码中,使用了All方法来检查列表中的所有元素。首先,使用lambda表达式a => a作为参数传递给All方法,来检查列表中的所有元素是否都为true。然后,使用lambda表达式a => !a作为参数传递给All方法,来检查列表中的所有元素是否都为false。
最后,将两个All方法的结果使用逻辑运算符||进行连接,即只要其中一个All方法的结果为true,整个表达式的结果就为true。
总结起来,以上代码的目的是判断一个列表中的所有元素是true还是false,方法是使用All方法分别检查所有元素为true和false的情况,并通过逻辑运算符||将两个结果连接起来。
代码如下:
bool result = myList.All(a => a) || myList.All(a => !a);