C Lambda表示式簡單事例 一

2021-09-30 08:40:34 字數 1431 閱讀 9828

public delegate int yuanill1(int t1, int t2);

private static int dosomething(int t1, int t2, yuanill1 match)

static void main(string args)

;//匿名方法的使用如下:

listddnumbers = list.findall(

delegate(int i)

);//匿名方法到此結束,它的作用是篩選資料

foreach (var oddnumber in ddnumbers) //迭代輸出資料;

//lambda表示式的用法如下:

listlistlambda = new list() ;

listddnumberslambda = list.findall(i =>(i % 2)!= 0);

foreach (var oddnumber in ddnumberslambda)

/** 解剖lambda表示式 i => (i % 2) != 0 lambda表示式的 => 標記(讀作 goes to),

* 它的前面是乙個引數列表,後面是乙個表示式或表示式塊。

* 很明顯,前面的引數列表並沒有定義引數的型別(由編譯器根據上下文推斷出i是乙個整型),

* 所以它是隱式的。當然,我們也可以顯示定義: (int i)=>(i%2)!=0);

* 我們這裡引數列表只有乙個引數,所以那個括號可以被省略。

*///例項2.

string liststring = new string;//注意字串陣列的初始化規範;

string yuan1 = array.findall(liststring,

delegate(string s)

);foreach (var numyuan1 in yuan1)

//lambda表示式來搜尋字串陣列中包含a的字串陣列;

string listlambda1 = new string;

string ll = array.findall(listlambda1, s => (s.indexof("a") >= 0));

foreach (string str in ll)

/*總結:

* 從**書寫角度,**可讀性角度來說:lambda表示式 比匿名方法更簡單了。

* 而 lambda表示式 和 匿名方法都是幹的同一件事情,讓我們少寫乙個

* 函式定義。函式的呼叫和函式的實現在一起完成了。

*/var t = dosomething(7,8,(x,y)=>x*y);

console.writeline(t);

var tt = dosomething(7, 8, (x, y) =>

else });

console.writeline(tt);}}

}

學習C lambda表示式(一)

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

lambda表示式 C Lambda表示式

lambda宣告 lambda introducer。在內部,你可以指明乙個capture用來處理外部作用域內未被傳遞為實參的資料。意味著外部作用域以by value的方式傳遞給lambda。在lamdba中不能改變其值 為什麼?意味著外部作用域以by reference的方式傳遞給lambda。因...

C lambda表示式複習

include include include include using namespace std int main lambda表示式也就是乙個函式,我們可以把它賦給函式指標,也可以在後面加上括號使用。裡面可以新增一些限制lambda塊語句中使用外部變數的限制符。一共有四種情況 1.空白表示不...