lambda表示式之實踐篇

2021-06-27 16:24:48 字數 1347 閱讀 4815

之前對lambda

表示式的基礎進行過總結,現在就從實踐上進一步對它進行了解。看看它與委託、匿名函式的區別,以及它有什麼亮點!

//傳統的呼叫委託的示例

static void finddelegate()

);predicatefindpredicate = new predicate(isbookcategory);

listbookcategory =list.findall(findpredicate);

foreach (var str in bookcategory)

\t",str);}}

//謂詞方法,這個方法將被傳遞給findall方法進行書書籍分類的判斷

static bool isbookcategory(string str)

//使用匿名函式

static void findlistanonymousmethod()

);//在這裡,使用匿名方法直接為委託建立乙個**塊,而不用去建立單獨的方法

listbookcategory =list.findall

(delegate(string str)

);foreach (string str inbookcategory)

\t", str);

}}

//使用lambda表示式

static void findlistlambdamethod()

);//在這裡,使用了lambda來建立乙個委託方法

listbookcategory =list.findall((string str) => str.endswith("課程"));

foreach (var str in bookcategory)

\t", str);

}}

static voidmain(string args)

在 2.0 之前的 c# 版本中,宣告委託的唯一方法是使用命名方法。c# 2.0引入了匿名方法,而在 c# 3.0 及更高版本中,lambda 表示式取代了匿名方法,作為編寫內聯**的首選方式。但是有關匿名方法的資訊同樣也適用於lambda 表示式。

有一種情況下,匿名方法提供了 lambda表示式中所沒有的功能。匿名方法使您能夠省略引數列表,這意味著可以將匿名方法轉換為帶有各種簽名的委託。這對於 lambda 表示式來說是不可能的。

綜上可見匿名函式和

lambda

表示式都是委託的一種表現方式,是它的一種進化,讓書寫和理解更為簡單和容易。

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...

Lambda表示式和Lambda表示式樹

原版來自 linq學習筆記之二 lambda表示式和lambda表示式樹 lambda 表示式 lambda expressions 是linq實現的另一特性。lambda表示式的作用就是使用使用函式式語法,將方法實現關聯到委託例項。在使用查詢表示式 query expressions 時,查詢表示...

Lambda表示式表示式樹

在c 3.0中,繼匿名方法之後出現了lambda 表示式,使表達更為簡潔 快捷。lambda 表示式使用lambda 運算子 來定義,語法如下 引數列表 lambda 運算子的左邊是輸入引數,定義lambda表示式的接收引數列表,右邊包含表示式或語句塊,表示將表示式的值或語句塊返回的值傳給左邊的引數...