[.NET][C#][LINQ] Collectionをある数ごとに分割する

const int ChunkSize = 3;

int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

// 要素のインデックスをChunkSizeで割った商の数でグループ化して、
// グループの数だけ chunkedNumbers の要素ができる。
var chunkedNumbers = numbers
                         .Select((number, index) => new { Index = index, Number = number })
                         .GroupBy(x => x.Index / ChunkSize)
                         .Select(gr => gr.Select(x => x.Number));

コメントを残す