動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

③大きなDataTableでWhereを多重に重ねると遅い

出典: C# DataTable を LINQ でフィルタ・GroupBy・分割する3パターンハマりポイント3つ—俺が踏んだやつ / ③大きなDataTableでWhereを多重に重ねると遅い

③大きなDataTableでWhereを多重に重ねると遅い (csharp)#63b6403cfb95
// ❌ NG:同じフィルタを2回評価する
var filtered = dt.AsEnumerable().Where(r => r.Field<int>("price")> 1000);
 
int count = filtered.Count();             // 1回目スキャン
int sum = filtered.Sum(r => r.Field<int>("price"));   // 2回目スキャン
 
// ✅ OK:一度ToList()で固める
var filtered = dt.AsEnumerable()
    .Where(r => r.Field<int>("price")> 1000)
    .ToList();   //ここで1回だけ評価
 
int count = filtered.Count;
int sum = filtered.Sum(r => r.Field<int>("price"));
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #63b6403cfb95
  • lines: 13
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「ハマりポイント3つ—俺が踏んだやつ / ③大きなDataTableでWhereを多重に重ねると遅い」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

10
図鑑トップ