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