Lambda表達式
C# 2.0提供了匿名方法,允許delegate中的代碼塊以“in-line”方式進入執行的確代碼中,在3.0中的Lambda表達式提供了更簡練的表達方式,為LINQ表達式的使用提供了語法的基礎。Lambda表達式是以=>為關鍵字的,請看下面的例子:
var aNumbers = new[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var aLowThanFive = aNumbers.Where(i => i < 5);
foreach (var v in aLowThanFive)
{
Console.WriteLine(v);
}
執行結果是:4,1,3,2,0
含義是從數組中選擇小於5的數。其中I => I < 5相當於Lambda表達式。
它執行時轉化為下列的結構:
var aLowThanFive = aNumbers.Where(
delegate(int i)
{
return i < 5;
}
);
而aNumbers.Where就是前面提到的擴展方法,很熟悉吧,delegate就是匿名方法。
再看一個例子:
List<Person> objList = new List<Person>
{