擴充套件方法 委託和Lambda

2022-05-16 12:41:33 字數 889 閱讀 2458

舉例演化lambda

string names =;

//問題:從陣列names中篩選字元長度為5的成員

//先宣告乙個返回型別為bool的靜態函式

public static bool islengthfive(string s)

return s.length == 5;

//enumerable中的where方法是擴充套件方法,要求返回型別為bool引數型別為string的委託例項

//a01為where方法提供命名函式

var namea = names.where(islengthfive);

//a02為where方法提供匿名函式

var nameb = names.where(delegate(string s));

//a03靜態類中靜態方法的呼叫

ienumerablenamec = enumerable.where(names,delegate(string a));

//lambda演化

///b01為擴充套件方法傳遞匿名方法(委託匿名例項)=>匿名函式使用lambda表示式來表示(為擴充套件方法傳lambda)

var query = name.where(s=>s.length == 5)

.orderby(s=>s)

.select(s=>s.tolower())

!!!  lambda表示式會被轉化成匿名函式,匿名函式會轉化為委託(匿名函式是因委託而存在的)

/////c01 linq(查詢表示式)//查詢操作符,表達形式可以參照資料庫的查詢語句

var queryb = from b in names

where b.length == 5

orderby b

select b.tolower();

擴充套件方法 委託和Lambda

舉例演化lambda string names 問題 從陣列names中篩選字元長度為5的成員 先宣告乙個返回型別為bool的靜態函式 public static bool islengthfive string s return s.length 5 enumerable中的where方法是擴充套...

lambda 委託 匿名方法

委託 delegate是c 中的一種型別,它實際上是乙個能夠持有對某個方法的引用的類。與其它的類不同,delegate類能夠擁有乙個簽名 signature 並且它只能持有與它的簽名相匹配的方法的引用。它所實現的功能與c c 中的函式指標十分相似。它允許你傳遞乙個類a的方法m給另乙個類b的物件,使得...

匿名函式 委託 lambda表示式 擴充套件方法

using system using system.collections.generic using system.linq using system.text namespace 匿名函式與lambda somedelegate f delegate string s f zhangfeng l...