Встретился с такой задачей (условие упрощено):
дана последовательность целых чисел. Например,
var numbers = new int[] { 1, 2, 2, 1, 1, 1, 3, 3 };
Надо разбить на группы так, чтобы группа состояла из одинаковых последовательных элементов и была размером не более 2.
Т.е. на выходе должно получится что-то вроде
{ {1}, {2, 2}, {1, 1}, {1}, {3, 3} }
Реализовать используя циклы легко, хочется максимально использовать LINQ.