C# Linq的Any()方法 – 确定序列中是否存在元素

  • Post category:C#

C# Linq中的Any()方法用于判断序列是否包含任何元素。它的语法如下:

public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

其中,参数source是需要搜索的序列,参数predicate是用于定义搜索条件的方法。方法返回布尔值,表示序列中是否有符合条件的元素。

下面提供两个示例说明:

  1. 假设我们有一个整数序列,需要判断其中是否有任何一个元素是奇数。我们可以使用如下代码:
// 创建一个整数序列
int[] numbers = { 1, 2, 3, 4, 5 };

// 使用Any()方法,判断是否有任何一个元素是奇数
bool hasAnyOddNumber = numbers.Any(x => x % 2 == 1);

// 输出结果
Console.WriteLine(hasAnyOddNumber);  // 输出True

在上述示例中,我们使用Any()方法和Lambda表达式指定了搜索条件。代码中,x => x % 2 == 1表示判断x是否为奇数。

  1. 假设我们有一个字符串序列,需要判断其中是否有任何一个元素包含指定的子字符串。我们可以使用如下代码:
// 创建一个字符串序列
string[] words = { "apple", "banana", "orange", "grape" };

// 使用Any()方法,判断是否有任何一个元素包含指定的子字符串
bool hasAnyStringWithSubstr = words.Any(x => x.Contains("ra"));

// 输出结果
Console.WriteLine(hasAnyStringWithSubstr);  // 输出True

在上述示例中,我们使用Any()方法和Lambda表达式指定了搜索条件。代码中,x => x.Contains("ra")表示判断x是否包含”ra”这个子字符串。