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
作為過濾條件,來獲取列表中的所有偶數。最后,我們遍歷并輸出篩選后的偶數列表。