在C#中,Predicate是一个泛型接口,用于表示一个返回布尔值的委托。Predicate接口通常用于集合类(如List、Dictionary等)的过滤操作。Predicate接口的定义如下:
public delegate bool Predicate<T>(T obj);
这里的T
表示类型参数,它可以是任何类型。当你需要对一个集合类进行过滤时,可以传递一个实现了Predicate接口的委托作为参数。例如,如果你想从一个整数列表中筛选出所有偶数,可以定义一个Predicate委托,如下所示:
Predicate<int> isEven = x => x % 2 == 0;
然后,你可以将这个Predicate委托传递给集合类的过滤方法,如List<T>.FindAll
:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
List<int> evenNumbers = numbers.FindAll(isEven);
在这个例子中,evenNumbers
将包含筛选后的偶数列表(2, 4, 6)。