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