LINQ, чтобы найти серию последовательных номеров
У меня есть список целых чисел. Я хочу найти все серии последовательных чисел в этом списке, определяемые начальным индексом и длиной. Так, например, для ввода списка[1,2,3,5,7,8]
, результат будет[{1,3}, {5,1}, {7,2}]
, Это достаточно просто сделать с помощью цикла, что-то вроде этого (непроверенный псевдокод):
for(i=1, i < maxNum; i++)
{
number = list[i];
previousNumber = list[i-1];
if(number - previousNumber == 1)
{
runLength++;
}
else
{
result.Add(startingNumber, runLength);
runLength = 1;
startingNumber = number;
}
}
Но я думал, что это будет возможно сделать с помощью LINQ. Есть идеи как это сделать?