在C#中,謂詞(Predicate)是一個返回布爾值(true或false)的函數,通常用于篩選集合中的元素或者作為委托傳遞給其他方法。謂詞可以接受一個或多個參數。
要定義一個謂詞,你可以使用lambda表達式、方法引用或者表達式樹。以下是三種定義謂詞的示例:
// 定義一個int類型的謂詞,判斷一個數是否為偶數
Predicate<int> isEven = x => x % 2 == 0;
// 使用謂詞篩選集合中的偶數
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenNumbers = numbers.Where(isEven);
// 定義一個靜態方法,判斷一個數是否為偶數
public static bool IsEven(int x)
{
return x % 2 == 0;
}
// 使用謂詞篩選集合中的偶數
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenNumbers = numbers.Where(IsEven);
// 定義一個表達式樹,判斷一個數是否為偶數
Expression<Predicate<int>> isEven = x => x % 2 == 0;
// 使用謂詞篩選集合中的偶數
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
var evenNumbers = numbers.Where(isEven.Compile());
在這些示例中,我們定義了一個名為isEven
的謂詞,用于判斷一個整數是否為偶數。然后,我們使用LINQ的Where
方法,將謂詞作為參數傳遞,篩選出集合中的偶數。