舉例演化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...