iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0
自我挑戰組

學習C#續系列 第 15 篇

Day 15:LINQ的基本操作

  • 分享至 

  • xImage
  •  

LINQ 操作的完整生命週期固定包含三個階段:
1.取得資料來源 2.建立查詢 3.執行查詢。

  1. 取得資料來源(Obtain the Data Source):
  • 資料來源必須實作 IEnumerable 或 IQueryable 介面。
  • 常見來源包括:記憶體中的集合(陣列、List、Dictionary<TKey, TValue>)、資料庫(Entity Framework Core)或 XML/JSON。
  1. 建立查詢(Create the Query):
  • 使用宣告式語法描述「想要取得什麼樣的資料」,指定篩選條件(Where)、排序(OrderBy)或投影轉換(Select)。
  • 兩種語法風格:
    • 方法語法(Method Syntax):透過擴充方法搭配 Lambda 運算式(如 .Where(x => ...)),實務最常用且功能最完整。
    • 查詢語法(Query Syntax):採用類似 SQL 的宣告風格(如 from x in list where ... select x)。
  • 延遲執行(Deferred Execution):建立查詢敘述時,並不會立即走訪資料庫或記憶體,此階段僅是建立並儲存查詢的邏輯定義。
  1. 執行查詢(Execute the Query):
  • 延遲執行觸發:當開始真正「讀取」資料時(例如透過 foreach 逐筆迭代走訪),查詢邏輯才會正式運算。若在此之前修改了來源資料,查詢結果會反映最新的資料變動。
  • 立即執行強制觸發(Immediate Execution):
    • 轉換為固化集合:呼叫 ToList()、ToArray()、ToDictionary()。
    • 聚合運算:呼叫 Count()、Sum()、Average()、Max()、Min()。
    • 單筆擷取:呼叫 First()、FirstOrDefault()、Single()。
    • 呼叫上述方法會立刻走訪集合並將結果快取儲存,後續資料來源的改動不會影響已固化的結果。

實作範例
https://ithelp.ithome.com.tw/upload/images/20260928/20178925O2TjiYKpSQ.png

https://ithelp.ithome.com.tw/upload/images/20260928/20178925ki4QHY1ODN.png

https://ithelp.ithome.com.tw/upload/images/20260928/20178925VKT5enZgLN.png


上一篇
Day 14:LINQ介紹
下一篇
Day 16:LINQ(排序運算、群組運算)
系列文
學習C#續 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言