c lambda表示式學習

2022-01-23 04:28:30 字數 1087 閱讀 4644

1. 普通繫結:

public void button1_click(objectsender, eventargs e)

this.button1.click += button1_click;

2. 匿名委託:

this.button1.click += delegate(objectsender, eventargs e)

;

3. lamda表示式:

this.button1.click += ((sender, e) =>

);

編譯器會自動推算出表示式中的型別。

4. 過濾條件:

listusers = new list();

funcbool> predicate =(

(user) =>

);listtemps = users.where(predicate).tolist();

等同於:

listtemps = users.where(p => p.userid > 100).tolist();

listtemps = (from p in users where p.userid > 100 select p).tolist();

listusers = new list();

funcbool> predicate =(

(user) => user.userid > 100);

listtemps = users.where(predicate).tolist();

單挑語句時不需要使用{},同時可以不使用return來返回結果。

5. 排序:

listusers = new list();

listtemp1 = users.orderby(p=>p.userid).tolist();

funcint> orderby = (user =>user.userid);

listtemp2 = users.orderby(orderby).tolist();

學習C lambda表示式(一)

前言 lambda是c 11新增的,因此對你的編譯器是有要求的。比如你用的是visual studio,那麼版本要求是vs2011之後的。lambda是一種定義匿名函式物件的簡潔方式,可以接受引數 儲存狀態 返回值以及跨越多行。lambda表示式可提高c 程式設計速度和效率,推薦讀者盡可能使用它們。...

學習C lambda表示式(二)

上篇已經介紹了lambda的基本概念 一元函式對應的lambda以及一元謂詞對應的lambda表示式 這篇將繼續介紹lambda表示式的其它應用。上篇中建立了乙個一元謂詞,當整數能被2整除時返回true。現在如果要改變指定的除數,可通過lambda表示式的捕獲列表。int divisor 3 除數 ...

C lambda表示式 學習筆記

auto f void fcn1 v1 0 auto j f j 42 void fcn2 v1 0 auto j f j 0 void fcn3 v1 0 auto j f j 43 void fcn4 v1 0 auto j f j 1 當可呼叫物件只能接受乙個引數,但是需要兩個或者多個引數才能...