C# Linq的All()方法 – 确定序列中的所有元素是否满足指定的条件

  • Post category:C#

当使用C#中的Linq进行集合处理时,我们可能会使用All()函数来检测集合中的所有元素是否满足某个条件。下面是All()函数的使用方法和示例说明。

一、All()的使用方法

All()函数是Linq中的一个函数,用于将一个布尔表达式应用于序列中的所有元素。All()函数返回true只有当序列中的所有元素都满足给定条件时才会返回。如果序列中没有任何元素,则返回true。下面是All()函数的语法:

bool b = collection.All(x => expression);

其中:

  • collection:要处理的集合
  • x:集合中的元素
  • expression:应用于集合中的每个元素的测试条件(一个返回bool类型的表达式)

二、示例说明

下面提供两个示例说明,以便更好地理解All()函数的使用。

1. 判断集合中的所有元素是否为正数

在下面的示例中,我们将使用All()函数检查集合中的所有元素是否均为正数。如果序列中的所有元素均为正数,则输出“所有元素均为正数”,否则输出“序列中包含非正数元素”。

List<int> numbers = new List<int> { 3, 4, 7, 8, 9 };
// 判断集合中的所有元素是否为正数
bool allPositive = numbers.All(x => x > 0);
if (allPositive)
{
    Console.WriteLine("所有元素均为正数");
}
else
{
    Console.WriteLine("序列中包含非正数元素");
}

上述代码输出结果为“所有元素均为正数”。

2. 判断集合中的字符串是否都是以“A”开头

在下面的示例中,我们将使用All()函数检查集合中的所有字符串是否都是以“A”开头。如果序列中的所有字符串均以“A”开头,则输出“集合中所有字符串都以A开头”,否则输出“集合中存在不以A开头的字符串”。

List<string> names = new List<string> {"Apple", "Apricot", "Avocado"};
// 判断集合中所有字符串是否都以A开头
bool allStartsWithA = names.All(x => x.StartsWith("A"));
if (allStartsWithA)
{
    Console.WriteLine("集合中所有字符串都以A开头");
}
else
{
    Console.WriteLine("集合中存在不以A开头的字符串");
}

上述代码输出结果为“集合中所有字符串都以A开头”。

三、总结

All()函数用于将一个布尔表达式应用于序列中的所有元素。All()函数可以帮助我们检查集合中的所有元素是否满足某个条件,从而简化代码的编写过程。我们可以通过示例来更好地理解All()函数的使用方法。