C# 實用但易被遺忘的特性與技巧 (二) 匿名方法與索引器
匿名方法 C# 2.0 引入匿名方法,適合邏輯簡單、僅用一次的委派場景,避免額外定義命名方法: delegate void Dele(); class Prog
LINQ 學習筆記 (七) 延遲執行與非泛型集合查詢 (一) 基礎概念與驗證
延遲執行基本概念 LINQ 查詢定義時不立即計算,而是在列舉結果(如 foreach)時逐元素執行。這避免了一次載入整個資料源,大幅改善大數據場景效能。 驗證
LINQ 學習筆記 (七) 延遲執行與非泛型集合查詢 (二) 資料源變更自動反映
延遲執行特性:資料源變更自動生效 查詢定義時僅捕獲操作委派,真正執行在列舉時。因此列舉前若修改資料源,下次列舉會反映最新狀態: static void Main
LINQ 學習筆記 (七) 延遲執行與非泛型集合查詢 (三) 立即執行與效能展示
延遲執行機制演示 自訂 IEnumerable<T> 實作,可觀察查詢實際在 GetEnumerator() 中逐元素執行: static void
LINQ 學習筆記 (七) 延遲執行與非泛型集合查詢 (四)
查詢非泛型集合 .NET 1.x 時代集合非泛型(如 ArrayList),元素為 object。LINQ 基於泛型,需轉型才能查詢。Enumerable.Ca
LINQ 學習筆記 (六) Group 與 Join 進階 (二) GroupBy 與內部聯接
GroupBy 分組操作 依鍵值將序列分組,回傳 IEnumerable<IGrouping<TKey, TElement>>。 基本
LINQ 學習筆記 (六) Group 與 Join 進階 (三) 左外部聯接與笛卡兒積
左外部聯接 內部聯接會忽略無對應內部元素的外部元素。左外部聯接保留所有外部元素,無對應時內部元素為預設值(參考型別為 null)。 查詢語法實現 var re
LINQ 學習筆記 (六) Group 與 Join 進階 (四) GroupJoin 總結
GroupJoin 群組聯接 GroupJoin 將外部序列與內部序列依鍵值關聯,結果為外部元素對應的內部元素群組。方法原型: public static IE
LINQ 學習筆記 (四) 投影、篩選與排序操作
Select 投影操作 Select 將序列中的每個元素投影為新形式,可回傳屬性、新物件、匿名型別、方法呼叫結果等。方法原型: public static IE
LINQ 學習筆記 (三) 語法結構與查詢語法糖
LINQ 查詢語法結構 LINQ 查詢表達式由 from、where、orderby、select 等子句組成,編譯器會將其轉換為方法呼叫鏈(擴充方法)。 範
LINQ 學習筆記(二).NET 3.x 新特性回顧(二):自動屬性 IL 實作、隱含型別區域變數
自動屬性:編譯器自動生成支援欄位與存取器 public class Test1 { public int Int1 { get; private se
LINQ 學習筆記(二).NET 3.x 新特性回顧(三):物件/集合初始化器、匿名型別
物件初始化器 允許在建構子呼叫後,直接以大括號設定屬性/欄位: public class Test1 { public string String1
LINQ 學習筆記(二).NET 3.x 新特性回顧(五):Func/Action/Predicate、擴充方法、查詢語法與 IL 視角
系統預定義泛型委派 .NET 3.5 內建三大委派家族,配合 Lambda 運算式極大簡化程式碼: 委派型別參數對應方法簽章用途 Func<TRe
LINQ 學習筆記(一)綜述(一):回顧 C# 集合操作歷史,認識 LINQ 設計動機
什麼是 LINQ? Language Integrated Query(語言整合查詢),將查詢能力直接內建於 C# 語言,語法酷似 T-SQL,可對記憶體集合、
LINQ 學習筆記(一)綜述(二):.NET 1.x 到 2.0 的集合操作演進
.NET 1.x 時代:ArrayList 與裝箱/拆箱之痛 集合初始化 ArrayList list = new ArrayList(); list.Ad
LINQ 學習筆記(一)綜述(三):.NET 3.x 語法糖大幅簡化集合操作
.NET 3.x 時代的語言革新 .NET 3.5(C# 3.0)引入一系列語法糖,徹底改變集合操作體驗:自動屬性、擴充方法、隱含型別、匿名型別、集合初始化器、
C# 反射應用實戰(一):核心基礎與 ShowObject 類別完整實作
為什麼要學反射? 反射是 C#(及 Java)極具威力的特性。所有主流框架——Struts、Hibernate、Spring、ASP.NET Core、Enti