您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#集合查詢Linq在項目中如何使用”,在日常操作中,相信很多人在C#集合查詢Linq在項目中如何使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#集合查詢Linq在項目中如何使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
說到Linq,就不得不提Lambda表達式了,說實話,實際開發中,直接用Linq寫的相關代碼還真不多,Lambda表達式到處都是!
先上代碼,直觀看看他們兩者有什么區別
static void Main(string[] args) { List<User> users = new List<User>(); var letters = "abcdefghijklmnopqrstuvwxyz"; var rand = new Random(); for (int i = 0; i < 10; i++) { string name = default; for(int j = 0; j < 4; j++) { name += letters[rand.Next(25)]; } users.Add(new User { Name = name, Age = rand.Next(1, 99) }); } //Linq IEnumerable<User> usera = from u in users where u.Age < 35 select u; //usera.ToList(); //Lambda List<User> userb = users.Where(x => x.Age < 35).ToList(); //輸出來看看 foreach(User u in usera) { Console.WriteLine("name:{0},age:{1} \n", u.Name, u.Age); } Console.WriteLine("------------------"); foreach (User u in userb) { Console.WriteLine("name:{0},age:{1} \n", u.Name, u.Age); } Console.ReadLine(); } class User { public string Name { get; set; } public int Age { get; set; } }
看完代碼,是不是感覺Linq跟SQL差不多,對,本來他們就是類似語言,我個人猜測應該是模仿出來的一種語法糖吧(具體誰模仿誰就不得而知了),相似也好,學起來更方便了。而Lambda表達式寫起來是真的舒服!
那么,Linq和Lambda有什么關系呢
包含的關系,Linq范圍更廣一些,Lambda表達式看起來像一個箭頭函數,就是!,也可以說是一個匿名函數!他相當于Linq的二次封裝語法糖吧(個人理解)
基本上Linq能實現的,Lambda表達式都可以實現
通常溝通中,說Linq寫法,其實默認就是Linq Lambda表達式了。直接鏈式寫法,簡潔,可讀性,后期維護起來也是非常方便的。
眾所周知,SQL能實現的功能是非常強大的,而Linq同樣可以實現。
但實際開發中,SQL一般會寫的相當復雜,聚合查詢是常事,而Linq一般很少涉及(也能多表查詢),更多的是諸如去重、篩選、排序、分組、統計計算等操作
獲取不同用戶的權限菜單 當用戶登錄時,可以獲取到用戶的權限菜單集合(id集合),而具體展示菜單,還需要到全部菜單集合中去查找對應的,然后篩選出來,返回給前端,最后進行渲染展示!
如果菜單集合List全都是一級菜單,那相當簡單,但是如果有二級、三級菜單就比較麻煩了,在這個篩選過程中,我就用到了Linq來實現部分功能
//powers 用戶權限菜單集合 //menus 全部菜單集合 //menus.SubItems 二級菜單集合 (from sub in menus.SubItems where powers.Any(x=>x.Key == sub.Id) select sub).Count()
如上代碼段,可以獲取到當前菜單的子菜單的個數
如果不加外層的Count(),那結果就是當前菜單子菜單(此用戶有權限的)集合
如果不采用Linq,一行代碼很難實現(方法還是有的,只是不會Linq那么方便寫)
LINQ其實并不是后端語言的專屬,前端同樣可以使用,只需要引用相應的js插件即可
js、vue等項目中都有對應的插件(例如jslinq),僅需要對應的組件中引入插件(也可以在母版頁或全局引用),然后就可以像后端語言中一樣的使用即可。
具體寫法與后端語言差不多,常用方法名也都一樣
要說不一樣的地方,我感覺唯一不好的體驗就是,前端使用時,沒有代碼提示了,如果對LINQ不太熟悉的,在使用LINQ時,還需要借助相關文檔,多用幾次,自然就不算什么問題了。
到此,關于“C#集合查詢Linq在項目中如何使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。