Linq 的優雅外衣由四大 C# 3.0 語言特性織就,缺一不可。本文為系列索引,逐一揭示其背後機制與設計原則。
讓 IEnumerable<T> 擁有 Where、Select 等實例方法語法。IL 層面實為靜態方法呼叫,第一參數加 this 修飾。應用原則:僅用於「增強現有型別」、避免汙染命名空間、謹慎處理衝突。
將函數式風格引入 C#。Lambda 可編譯為委派或運算式樹,後者為 Linq 核心根基——保留查詢語義供 Provider 解析轉譯。
var result = from ... select new { Name = x.Name, Age = x.Age };
隱式型別 var 配合匿名類型,讓投射結果無需預先定義類別,極大提升撰寫流暢度。
new User { Name = "Tom", Age = 25 }
new List<int> { 1, 2, 3 }
消除大量樣板程式碼,配合物件建構更簡潔。
詳細各特性用法、IL 實現與最佳實踐請參閱系列後續文章。這些特性非為 Linq 而生,但 Linq 整合它們創造出超越總和的體驗。