一個lambda表達式在查詢中,運算符是根據請求計算的,並單獨作用於輸入序列中的每個組件,而不是整個序列。LINQ Lambda表達式允許開發人員將他們的邏輯輸入基本的LINQ查詢操作符中。下麵示例中的開發人員使用了帶有lambda表達式的'Where'操作符從提供的列表中恢複奇數值。
Lambda類型推斷
在c#中,類型推斷在各種情況下都很有用,即使沒有顯式地指定類型。盡管如此,類型推斷隻有在提供了每種類型的lambda表達式的情況下才會起作用,因為必須滿足編譯器的要求。
變量範圍的Lambda表達式
根據在lambda表達式中使用變量作用域時的一些規則,在lambda表達式中啟動的變量不打算在外部過程中可見。還有一個限製說,在引用它的委托符合垃圾收集資格之前,捕獲的變量不能被垃圾收集。此外,在lambda表達式中使用return語句誘導周圍的方法返回是違反規則的。
表達式樹
Lambda表達式經常用於表達式樹的開發。表達式樹是一種類似於樹的數據結構,其中每個節點代表一個表達式,例如一個方法調用或一個二進製操作,例如x λ聲明 由2或3條語句組成的語句lambdas也可用,但不用於創建表達式樹。在lambda語句中,必須編寫return語句。 Lambdas在依賴於方法的LINQ查詢中被用作參數,並且它們永遠不允許像不透明方法那樣出現在操作符的左側。 雖然LINQ Lambda表達式與匿名方法類似,它們不僅限於用作委托。 在使用時要記住一些事情LINQ lambda表達式: