C# Predicate 委托

Predicate 是像 Func和Action代表一樣的委托。表示定義一組條件并確定指定對象是否符合這些條件的方法。此委托由 Array 和 List 類的幾種方法使用,用于在集合中搜索元素。Predicate委托方法必須采用一個輸入?yún)?shù)并返回布爾值 true 或 false。

Predicate委托的定義

Predicate委托在 System 所定義的命名空間,如下所示:

Predicate 簽名:

public delegate bool Predicate<in T>(T obj);

與其他委托類型相同,Predicate 委托也可以與任何方法,匿名方法 或 lambda表達式一起使用。

static bool IsUpperCase(string str)
{
    return str.Equals(str.ToUpper());
}

static void Main(string[] args)
{
    Predicate<string> isUpper = IsUpperCase;

    bool result = isUpper("hello world!!");

    Console.WriteLine(result);
}
輸出:
false

Predicate 委托 與 匿名方法

也可以將匿名方法分配給 Predicate 委托類型,如下所示。

static void Main(string[] args)
{
    Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper());};
    bool result = isUpper("hello world!!");
}

Predicate 委托 與 Lambda 表達式

也可以將lambda表達式分配給 Predicate 委托類型,如下所示。

static void Main(string[] args)
{
    Predicate<string> isUpper = s => s.Equals(s.ToUpper());
    bool result = isUpper("hello world!!");
}

Predicate 委托使用說明

  • Predicate 委托 是返回bool型的泛型委托

  • Predicate<int>委托 表示傳入?yún)?shù)為int 返回bool的委托

  • Predicate 委托 有且只有一個參數(shù),返回值固定為bool

要記住的要點

  1. predicate 委托采用一個輸入?yún)?shù)和布爾值返回類型。

  2. 可以將匿名方法和Lambda表達式分配給predicate委托。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清