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

パターン②: forループ+ Rows[i] (LINQ不使用・メモリ効率)

出典: C# DataTable の大量行を Skip&Take でページングする3パターン — 1万行を1000件ずつ処理する設計パターン②: forループ+ Rows[i] (LINQ不使用・メモリ効率)

パターン②: forループ+ Rows[i] (LINQ不使用・メモリ効率) (csharp)#d083059d494f
var dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
for (int i = 1; i <= 10000; i++) {
    dt.Rows.Add(i, $"item-{i}");
}
 
int pageSize = 1000;
int totalRows = dt.Rows.Count;
int totalPages = (totalRows + pageSize - 1) / pageSize;
 
for (int page = 0; page < totalPages; page++) {
    int start = page * pageSize;
    int end = Math.Min(start + pageSize, totalRows);  // 境界処理
 
    for (int i = start; i < end; i++) {
        DataRow row = dt.Rows[i];
        // ここでバッチ処理 (DB INSERT / API POST など)
    }
    Console.WriteLine($"Page {page} processed: {end - start} rows");
}
▸ 実行ボタンで結果を表示
  • id: #d083059d494f
  • lines: 21
  • extracted: 2026-06-10
  • captured: 2026-06-04

Source収録記事

この snippet は記事の「パターン②: forループ+ Rows[i] (LINQ不使用・メモリ効率)」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

2
図鑑トップ