确定一个列表中的所有元素是否都为真或假

12 浏览
0 Comments

确定一个列表中的所有元素是否都为真或假

我需要检查一个List是否所有元素都为true或者所有元素都为false。\n

List b1 = 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

List b1 = 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;
}

0
0 Comments

问题的出现原因是需要确定一个列表中的所有元素是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);

0