← 回筆記列表
後端
C# LINQ 查詢入門
用查詢語法與方法語法對照,釐清 Where、Select 與延遲執行的基本用法。
- C#
- LINQ
LINQ 在做什麼
LINQ 把「篩選、投影、排序」寫成可組合的查詢。同一套思維可用在記憶體集合與部分資料來源。
兩種寫法
查詢語法適合表達意圖:
var result =
from item in items
where item.IsActive
select item.Name;
方法語法適合串接與重用:
var result = items
.Where(item => item.IsActive)
.Select(item => item.Name);
延遲執行
多數 LINQ 運算子是延遲的:定義查詢時還不會跑,直到你列舉(foreach、ToList)才執行。
這代表:
- 可以先組查詢再決定要不要物化
- 也要小心在迴圈裡重複列舉造成重複成本
小結
先用 Where / Select 把資料收成你要的形狀,需要時再 ToList。查詢語法與方法語法可以並存,選可讀性較高的那一種。