2010-06-18 52 views

回答

16

它被稱爲lambda operator in the MSDN docs

所有lambda表達式使用拉姆達 運算符=>,它讀作 「去 於」。拉姆達 操作者的左側指定輸入 參數(如果有的話),而右側 保持表達式或語句 塊。 lambda表達式x => x * x被讀取爲「x轉到x次x」。

2

如果您在LINQ的背景下,是lamdba operator所說:這 表達式可以如下分配給 委託類型。

如...

var selectedValues = myList.Where(v=>v.Name="Matt"); 

可以代替delgates在自己的方法使用這些。可能的用途將包括這樣的事情...

void DoWork<T>(T input, Func<T, bool> doAction, Action<T> action) 
{ 
    if (doAction(input)) 
     action(input); 
} 

...上述方法的使用會是什麼樣子......

DoWork(5, i=>i>1, v=>Console.WriteLine(v)); 

...因爲5大於1,這將顯示5在控制檯上。

+0

拉姆達運營商不僅與LINQ使用。 – Femaref 2010-06-18 20:33:34

+0

我確實相信我的例子表明......我在上下文中說過,因爲他可以在'for(; i => 1;)'的例子中看到一些堅果,並且可能沒有意識到這是一個正常的表達式。更有趣的是,在LINQ中,你也可以執行'。選擇(i =>「New Value」)來創建一組可設置的「New Value」輸入集。 – 2010-06-18 20:42:46

+1

要明確,'=>'不是「lambda表達式」 - 它是*的一部分*。 – 2010-06-18 21:24:39