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