概要
連番の数値をグループ化する際に嵌ったので自分用のメモとして残しておく。
以下のような配列形式の数値を連番を整形して
int [] number = { 1,2,3,6,9,10,15,16 }
以下のような形式で取得をしたい
1,2,3
6
9,10
15,16
実現方法
以下の方法で実現が可能です。
var number = { 1,2,3,6,9,10,15,16 };
// 配列の要素からインデックスの値を引いた値は同じになることを利用してグルーピングしています
var result = number.Select((x , index) => (x , index))
.GroupBy(n => n.x - n.index, n => n.x);