C# 数组 - Find() 方法

C# 数组 Find() 方法在搜索符合指定谓词定义的条件的元素后,返回该元素的第一个匹配项。

语法

以下是 C# 数组 Find() 方法的语法 -

public static T? Find<T> (T[] array, Predicate<T> match);

参数

此方法接受以下参数 -

  • array:要搜索的一维零基数组。
  • match:定义要搜索元素条件的谓词。

返回值

如果找到与谓词匹配的元素,则此方法返回该元素;否则返回类型 T 的默认值。

示例 1:查找第一个偶数

这是使用 Find() 方法显示数组中第一个偶数的基本示例 -

using System;
class Program {
   static void Main() {
      int[] Number = new int[] {1, 2, 3, 4, 5};
   
      // 找到第一个偶数
      int evenN = Array.Find(Number, num => num % 2 == 0);   
      Console.WriteLine("First Even number is: " + evenN);   
   }
}

输出

以下是输出 -

First Even number is: 2

示例 2:查找符合条件的字符串

让我们创建一个示例,使用 Find() 方法查找第一个以"c"开头的字符串 -

using System;
class Program {
   static void Main() {
      string[] names = {"Dipak", "Rhaul", "Chhavi", "Charlie"};

      // 查找以"C"开头的名称
      string namewithC = Array.Find(names, name => name.StartsWith("C"));
      Console.WriteLine("First name starting with 'C': " + namewithC);
   }
}

输出

以下是输出 -

First name starting with 'C': Chhavi

示例 3:如果未找到匹配项会怎样

让我们看另一个关于 Find() 方法的示例,以及它如何处理在数组中未找到匹配项的情况 -

using System;

class Program {
   static void Main() {
      int[] numbers = {1, 3, 5, 7 };
      int firstEven = Array.Find(numbers, num => num % 2 == 0);
      if (firstEven == default (int)) {
         Console.WriteLine("No even number found.");
      } else {
         Console.WriteLine("First even number: " + firstEven);
      }
   }
}

输出

以下是输出 -

No even number found.

示例 4:查找符合条件的自定义对象

在此示例中,我们创建一个自定义对象,该对象包含人员的姓名和年龄。我们使用 Find() 函数查找年龄大于 23 岁的人 -

using System;
class Person {
   public string Name {
      get;
      set;
   }
   public int Age {
      get;
      set;
   }
}
class Program {
   static void Main() {
      Person[] people = {
         new Person {
            Name = "Dipak", Age = 25
         },
         new Person {
            Name = "Karan", Age = 30
         },
         new Person {
            Name = "Pankaj", Age = 22
         }
      };

      // 查找第一个年龄大于 23 岁的人
      Person personOlder23 = Array.Find(people, person => person.Age > 23);

      Console.WriteLine("First person older than 23: " + personOlder23.Name);
   }
}

输出

以下是输出 -

First person older than 23: Dipak

csharp_array_class.html