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. Есть идеи как это сделать?

Ответы на вопрос(5)

Ваш ответ на вопрос