Linq表达式和Lambda表达式用法对比
生活随笔
收集整理的這篇文章主要介紹了
Linq表达式和Lambda表达式用法对比
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是Linq表達式?什么是Lambda表達式?
前一段時間用到這個只是,在網上也沒找到比較簡單明了的方法,今天就整理了一下相關知識,有空了再仔細研究研究
?
什么時候使用Linq?
通過上面的對比,好像Linq一文不值了。no,不是這樣的。
比如下面幾種情況我們就可以選擇使用Linq:
例一:(本例適用于Linq to Object 和 沒有建主外鍵的EF查詢)
Lambda中的Join需要傳四個參數表達式,是不是有點暈了。。。
?
例二:
Lambda需要區分OrderBy、ThenBy有沒有覺得麻煩
?
總覺得Linq更多的只是為了照顧那些寫慣了sql的程序員。
聯接查詢(內聯、左聯、交叉聯)
關于聯接查詢使用Linq會更合適一些這個上面已經說了。
接下來我們寫內聯、左聯、交叉聯的Linq和對應的Lambda代碼。(目的:可能有些人不會,同時在這里也給自己做個備忘)
內聯:
?
左聯:
var list1 = new Dictionary<string, string> { { "1", "張三" }, { "2", "李四" }, { "3", "張三" }, { "4", "張三" } }; var list2 = new Dictionary<string, string> { { "1", "張三" }, { "2", "李四" }, { "3", "李四" }, { "4", "張三" } }; //Linq查詢 var ojb2 = (from l1 in list1 join l2 in list2 on l1.Key equals l2.Key into list from l2 in list.DefaultIfEmpty() select new { l1, l2 }).ToList(); //Lambda查詢 var obj = list1.GroupJoin(list2, l1 => l1.Key, l2 => l2.Key, (l1, l2) => new { l1, l2=l2.FirstOrDefault() }).ToList();?
交叉聯:
var list1 = new Dictionary<string, string> { { "1", "張三" }, { "2", "李四" }, { "3", "張三" }, { "4", "張三" } }; var list2 = new Dictionary<string, string> { { "1", "張三" }, { "2", "李四" }, { "3", "李四" }, { "4", "張三" } }; //Linq查詢 var ojb2 = (from l1 in list1 from l2 in list2 select new { l1, l2 }).ToList(); //Lambda查詢 var obj = list1.SelectMany(l1 => list2.Select(l2 => new { l1,l2})).ToList();?
FROM :http://www.cnblogs.com/zhaopei/p/5746414.html
轉載于:https://www.cnblogs.com/chunhui212/p/5899158.html
總結
以上是生活随笔為你收集整理的Linq表达式和Lambda表达式用法对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习笔记之:Java Strin
- 下一篇: uploadify插件的使用