我總是偏好lambda表達式對集合執行操作。但是我可以使用比Lambda表達式更簡單的LINQ來達到同樣的效果。但是,我仍然對抽象層次&中的頂級問題感到困惑,原因何在?抽象層次Linq或Lambda表達式中的哪個更高
回答
我懷疑是「LINQ」你的意思是「查詢表達式」:
var query = from x in y
where x.Foo
select x.Bar
我的「lambda表達式」懷疑你的意思是直接調用擴展方法:
var query = y.Where(x => x.Foo)
.Select(x => x.Bar);
這些都是真的 LINQ ...
查詢表達式在略微更高a我認爲這是一個抽象級別,並且需要進行更多的工作才能實現真正的操作......但不是非常顯着,因爲轉換過程相當機械。
+1因爲我無法理解這個問題......但是答覆非常明確:-) :-) – xanatos
+1,因爲它們都被稱爲LINQ。很遺憾,很多人都不明白這一點。 –
@Hanan:這兩者都不是被稱爲* LINQ,而是兩種方法都是LINQ的一部分。你以任何方式使用LINQ,實際上也是相同的生成代碼。 –
LINQ表達式被編譯器翻譯成相應的擴展方法。 Lambda表達式是BCL的一部分,而LINQ語法只是由編譯器翻譯的語法糖,它不是發射的IL的一部分。
我不介意如何list.Select(..不是LINQ? –
nitpick:不是lambda表達式只是編譯器糖嗎?他們會被翻譯成匿名方法或表達式樹;它們不存在作爲發射IL中的「lambda表達式」 – LukeH
我猜你的問題實際上是關於查詢語法中的Linq(從carList中選擇car.Brand)和方法語法(carList.Select(car => car.Brand))之間的區別? 在這種情況下,很容易回答:Linq的查詢語法只是語法糖,並且會被翻譯成方法調用。因此,就抽象層次而言,它們幾乎完全相同。查詢語法對普通人來說看起來更容易理解。
緬
- 1. 更深層次的lambda表達式中的LINQ查詢
- 2. 轉換多層次的for循環到LINQ或lambda表達式
- 3. 層次Max在LAMBDA或LINQ
- 4. 抽象lambda表達式的建議
- 5. LINQ Lambda表達式
- 6. Linq Lambda表達式
- 7. Linq,lambda表達式
- 8. LAMBDA或LINQ表達式從列表
- 9. C#的LINQ或Lambda表達式組
- 10. 子查詢的Lambda表達式或LINQ
- 11. 哪一個是更好的lambda表達式或
- 12. 使用Linq在lambda表達式中的哪個子實體?
- 13. SQL查詢lambda表達式或LINQ
- 14. 轉換SQL到lambda表達式或LINQ
- 15. 哪個更高層抽象用於張量流
- 16. 哪個LINQ表達式更好?
- 17. linq或lambda表達式的對象分組
- 18. 正則表達式表達式搜索高達嵌套層次
- 19. 哪個LINQ表達更快
- 20. LINQ到lambda表達式
- 21. LINQ與Lambda表達式
- 22. Lambda表達式和更高階函數
- 23. Linq lambda表達式中存在的SQL
- 24. LINQ查詢中的C#lambda表達式
- 25. LINQ lambda表達式中的條件
- 26. linq表達式中的內聯lambda?
- 27. 結合兩個Linq lambda表達式
- 28. 如何使用linq或lambda表達式加入兩個列表
- 29. 更高效的LINQ表達式
- 30. 在lambda表達式中檢查null - linq
http://stackoverflow.com/questions/7391370/is-it-linq-or-lambda/7391389#7391389和http://stackoverflow.com/questions/5327897/difference-between- linq-queries-lambda-expression/5327982#5327982 使用LINQ查詢,使代碼更簡單,更易讀;不要在沒有的地方使用它們。編譯器將兩者視爲lambda表達式。 –
你應該使用任何更方便的東西,而不是任何具有更高抽象層次的東西(不管它是什麼意思)。 – Vlad