C# 中的 Predicate 泛型是一种非常有用的泛型接口,它允许你定义一个返回布尔值的委托。Predicate 泛型在集合类(如 List、Dictionary 等)中非常有用,因为它们经常需要一个条件来过滤元素。
Predicate 泛型的基本语法如下:
public delegate bool Predicate<T>(T obj);
这里,T
是类型参数,表示委托可以接受的类型。obj
是传递给委托的参数,表示要处理的对象。
下面是一个使用 Predicate 泛型的示例:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// 使用 Predicate 泛型过滤偶数
Predicate<int> isEven = x => x % 2 == 0;
List<int> evenNumbers = numbers.FindAll(isEven);
Console.WriteLine("偶数:");
foreach (int number in evenNumbers)
{
Console.WriteLine(number);
}
}
}
在这个示例中,我们定义了一个名为 isEven
的 Predicate 泛型委托,用于检查一个整数是否为偶数。然后,我们使用 List<int>
类的 FindAll
方法,传入 isEven
作为过滤条件,来获取列表中的所有偶数。最后,我们遍历并输出筛选后的偶数列表。