我知道Lambda表達式不僅適用於LINQ。但是,我們可以使用Lambda表達式的可能場景是什麼?這些沒有Lambda表達式的例子的代碼是什麼?Lambda表達式在c中的常見使用區域#
-1
A
回答
1
比方說,你有一個Person
對象的列表,並想從中做出一個Dictionary<int, string>
以便能夠通過他的SSN或其他東西來查找人名。
隨着ToDictionary
方法很簡單:
var dictionary = Persons.ToDictionary(p => p.SSN, p => p.Name);
另一種方法是創建一個字典,然後使用foreach
循環:
var dictionary = new Dictionary<int, string>();
foreach (Person p in Persons) {
dictionary.Add(p.SSN, p.Name);
}
這是有點羅嗦,隱藏的意圖。
您可以使用ToDictionary
但沒有lambda表達式:
var dictionary = Persons.ToDictionary(GetPersonKey, GetPersonValue);
//....
int GetPersonKey(Person p) {
return p.SSN;
}
string GetPersonValue(Person p) {
return p.Name;
}
這顯然是不那麼簡潔。
您可以用匿名委託去:
var dictionary = Persons.ToDictionary(delegate(Person p) { return p.SSN; },
delegate(Person p) { return p.Name; });
,但它不與簡潔lambda表達式進行比較。
如果lambda表達式沒有在語言中實現,我不想使用任何LINQ擴展方法,因爲它會要求大量不必要的代碼。
1
相關問題
- 1. 使用C++ Lambda表達式
- 2. 在另一個lambda表達式中使用lambda表達式
- 3. c中的lambda表達式#
- 4. EF4 - C#中使用lambda表達式
- 5. 使用Lambda表達式在查詢(C#)
- 6. C#Lambda表達式
- 7. lambda表達式c#
- 8. C++ lambda表達式
- 9. C#表達式Lambda
- 10. 在C++ lambda表達式
- 11. 在C++中翻譯lambda表達式c#
- 12. 在lambda表達式中的C#開關
- 13. 在C#中的Lambda表達式組
- 14. 如何使用此C#lambda表達式
- 15. 獲取有使用C#lambda表達式
- 16. C是否使用lambda表達式?
- 17. lambda表達式的專家意見 - ViewModels
- 18. lambda中的異常處理表達式
- 19. 在lambda表達式中使用std :: bind
- 20. 在List.ConvertAll中使用Lambda表達式
- 21. 在查詢中使用lambda表達式
- 22. FindAll在LINQ中使用Lambda表達式
- 23. C#lambda表達式在where子句中
- 24. 使lambda表達式
- 25. 如何在「sub」表達式中使用lambda表達式參數?
- 26. 在lambda表達式中使用Void表達式錯誤無效
- 27. 如何在正則表達式中使用Java lambda表達式
- 28. 在Cuda中使用表達式模板構建lambda表達式
- 29. 使用lambda表達式
- 30. 使用lambda表達式
您的問題的標題不反映身體......您要回答哪一個? – xtofl 2011-06-05 11:07:34
lambda表達式是一個委託,因此它們在您現在使用委託的任何地方都很有用。 – 2011-06-05 11:10:38
@xtofl更改了標題。我想現在好多了 – tugberk 2011-06-05 11:27:17