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


