📅  最后修改于: 2023-12-03 15:14:30.373000             🧑  作者: Mango
在C#中,谓词委托是一种特殊类型的委托,它表示一个接受一个参数并返回一个布尔值的方法。
谓词委托被广泛用于集合与数组中的元素筛选。它允许您将条件逻辑封装在一个方法中,并用它来过滤集合中的元素。
在C#中,谓词委托的类型是 Predicate<T>
。<T>
是委托的输入参数类型。Predicate委托的定义如下:
public delegate bool Predicate<in T>(T obj)
在Predicat委托中,参数obj是集合或数组中的元素。
以下代码演示如何使用谓词委托来筛选数组中的元素。
class Program
{
static void Main(string[] args)
{
int[] numbers = {1, -2, 3, -4, 5};
// 使用谓词委托筛选正数
int[] positiveNumbers = Array.FindAll(numbers, x => x > 0);
// 输出筛选出的正数
Console.WriteLine("Positive numbers:");
foreach (int number in positiveNumbers)
{
Console.WriteLine(number);
}
}
}
输出结果:
Positive numbers:
1
3
5
在上面的代码中,我们使用 Array.FindAll()
方法来筛选数组中的元素。 FindAll()
方法将谓词委托作为参数传递,谓词委托定义了筛选条件。这里,我们使用 x => x > 0
作为谓词委托,表示筛选出数组中大于0的元素。
以下代码演示如何使用谓词委托来筛选List
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int> {1, -2, 3, -4, 5};
// 使用谓词委托筛选正数
List<int> positiveNumbers = numbers.FindAll(x => x > 0);
// 输出筛选出的正数
Console.WriteLine("Positive numbers:");
foreach (int number in positiveNumbers)
{
Console.WriteLine(number);
}
}
}
输出结果:
Positive numbers:
1
3
5
在上面的代码中,我们使用 List<T>.FindAll()
方法来筛选ListFindAll()
方法将谓词委托作为参数传递,谓词委托定义了筛选条件。这里,我们使用 x => x > 0
作为谓词委托,表示筛选出集合中大于0的元素。
谓词委托是C#中一种特殊类型的委托,它表示一个接受一个参数并返回一个布尔值的方法。谓词委托被广泛用于集合与数组中的元素筛选。使用谓词委托可以将条件逻辑封装在一个方法中,并用它来过滤集合中的元素。