• 註冊領取上千元優惠券!
PressPlay 訂閱學習,時刻精進
  • 探索
  • 聽書
  • 優惠券專區
  • 熱門關鍵字
    讓音樂帶你進入心流吧!本月 TOP 30 課程排行榜🥇⏰ 熱門課限時優惠,再折上加折🔥🤑 PPA 領券專區,最低 59 折!
    鵝肉麵專訪
    全站分類
  • 5月 TOP 30 課程排行榜
  • 下載 App
    下載 APP 領取獎勵,隨時吸收新知識
    手機掃描下載
  • 公告
    📣 PPA 領券專區|全站優惠大集合!
    一次領所有優惠券,讓你一站省錢!▪️ 全站優惠一覽無遺,讓你擁有最高CP值 🙌▪️ 所有類別課程通通有折扣,現領現用,點進去就對了!
    3 天前
    查看全部
  • 我要開課
    登入/註冊
    註冊領取上千元優惠券!

寫出精簡C#程式碼必修課程 LINQ - 了解LINQ的威力範圍

Sorry, 我甚麼都不會就只會寫程式
公開
2023/12/12 07:50
1,181
9
留言
收藏
分享
字級
較小
標準
較大
特大
深色

Why?

專精一個技能之前
必須先了解這個技能能做到甚麼
才知道這個技能值得不值得投資

LINQ (Language Integrated Query)
發音為 link
顧名思義就是指擁有資料查詢能力的語言
是一種將查詢功能整合至以C#語言為基礎之技術的名稱

也就是精通這部分的程式碼應用之後
集合處理的相關程式碼都可以得心應手


How?

我們要如何知道 LINQ 到底有哪幾招可以用?


打開 System.Linq.Enumerable 的程式碼定義 (NET 7.0)
總共會有 66 種方法可以使用

我會按照使用"需求情境"來分類這 66 方法
並且逐一的解釋每個方法的功能
類似的方法會進行比較


我所條列的需求情境


產生情境

System.Linq.Enumerable 大多都是針對 IEnumerable 的擴充方法, 所以要善用 LINQ 的擴充方法必須先把集合轉成 IEnumerable

  1. 無中生有: 從無到有產生一個 IEnumerable
    • Repeat
    • Range
    • Empty
  2. 有中生有: 原本已經有其他種類的集合但不是IEnumerable, 讓他轉成 IEnumerable
    • AsEnumerable
    • Cast

資料處理

  1. 單一集合資料過濾
    1. Take/TakeLast/TakeWhile
    2. Skip/SkipLast/SkipWhile
    3. Distinct/DistinctLast/DistinctWhile
    4. Where
    5. OfType
  2. 單一集合資料排序
    1. Order/OrderDescending
    2. OrderBy/OrderByDescending
    3. ThenBy/ThenByDescending
    4. Reverse
  3. 但一集合資料轉型
    1. Select
    2. SelectMany
  4. 同維度的多集合組合/排除
    1. Concat
    2. Append
    3. Prepend
    4. Intersect/IntersectBy
    5. Union/UnionBy
    6. Except/ExceptBy
  5. 多集合資料組合
    1. Join
    2. GroupJoin
    3. Zip
  6. 單一集合資料分類
    1. GroupBy
    2. Chunk

輸出

從集合中得到結果

  1. Aggragate
  2. 運算整合:
    • Average
    • Sum
    • Max/MaxBy
    • Min/MinBy
  3. 邏輯整合
    • All
    • Any
    • Contains
    • SequenceEqual
  4. 取得集合數量:
    • Count
    • LongCount
    • TryGetNonEnumeratedCount
  5. 從集合中取一筆出來:
    • ElementAt/ElementAtOrDefault
    • First/FirstOrDefault
    • Last/LastOrDefault
    • Single/SingleOrDefault
  6. 轉成其他實體集合
    • ToArray
    • ToHashSet
    • ToDictionary
    • ToLookup
    • ToList


當你有一個集合處理的需求時
對應你面對的情境
你就可以從上面的表中找出對應的擴充方法

LINQ 的擴充命名方法都蠻直覺的
當你知道有這些方法存在時
你就會很好上手

接下來章節會介紹每一種情境的細節和使用方法
如果有必要會介紹進階的用法

Sorry, 我甚麼都不會就只會寫程式
[入門] 寫出精簡的C#程式碼 - LINQ
NT$87起
追蹤優惠
購買
C#

留言
  1. 首頁
  2. 投資理財
  3. 盤勢分析
  4. 掌握趨勢 抓住獲利
  5. 5/23『短線操作』
全部(7)
PressPlay Academy
品牌介紹線上課程PPA 部落格訂閱學習活動主題館耳邊說書
課程分類
投資理財語言學習烘焙料理健康健身生活品味職場技能行銷藝文娛樂
幫助
提案教學客服信箱優惠專區常見問題網站地圖
條款與政策
平台會員規範及申訴管道優惠使用規則服務條款隱私權政策
iOS App 下載
Android App 下載
PressPlay © 2016-2025 All Rights Reserved
公司名稱:瑞奧股份有限公司
公司統編:54225569
登記地址:臺北市大同區西寧北路62之5號2樓
下載 APP
手機掃描下載
填寫學習評價 送好禮
學習評價
按下送出即表示同意發表的內容會連同暱稱等個人資料一起公開顯示在 PressPlay 平台上,內容必須遵守 使用條款 與 隱私條款
為保持課程評價「公正性」與「多元性」,評價累積至一定比數才會由系統自動公開 ,且送出後無法修改
感謝你的回饋
謝謝你填寫評價,你的意見對我們來說很寶貴。獎勵 10 P 點數 已入帳戶,請於一年內使用完畢。
確定