List 是 List 實例方法,**非 LINQ 標準查詢操作符**。LINQ 提供豐富的延遲執行流式操作符。
| 分類 | 操作符 | 說明 |
|---|---|---|
| 投影/轉換 | Select | 一對一映射 |
| SelectMany | 扁平化映射 (如 List
| |
| Cast / OfType | 類型轉換/過濾 | |
| ToArray / ToList / ToDictionary | 具體化集合 | |
| 過濾 | Where | 條件過濾 |
| Take / Skip | 分頁 | |
| TakeWhile / SkipWhile | 條件截取 | |
| Distinct | 去重 | |
| 排序 | OrderBy / ThenBy | 升序/多鍵排序 |
| OrderByDescending / ThenByDescending | 降序 | |
| Reverse | 反轉 | |
| --- | --- | --- |
| 分組/聚合 | GroupBy | 分組 |
| GroupJoin | 左外連接分組 | |
| Aggregate / Sum / Average / Min / Max | 聚合計算 | |
| Count / LongCount | 計數 | |
| 集合運算 | Union / Intersect / Except | 並/交/差集 |
| Concat | 連接 | |
| Zip | 兩兩配對合併 | |
| Join | 內連接 | |
| 元素/量詞 | First / FirstOrDefault / Single / SingleOrDefault | 獲取單一元素 |
| ElementAt / ElementAtOrDefault | 索引獲取 | |
| Any / All / Contains | 量詞判斷 | |
| DefaultIfEmpty | 空序列默認值 |
ToList()/foreach 時才執行。public static IEnumerable> Batch(this IEnumerable source, int size) {
if (size <= 0) throw new ArgumentOutOfRangeException(nameof(size));
using (var e = source.GetEnumerator()) {
while (e.MoveNext()) {
var batch = new List(size) { e.Current };
while (batch.Count < size && e.MoveNext()) batch.Add(e.Current);
yield return batch;
}
}
}
// 使用
var batches = numbers.Batch(3); // 每3個一組