LINQ-запрос для разделения упорядоченного списка на подсписки смежных точек по некоторым критериям
Нужна помощь в написании LINQ-запроса для некоторых объектов. Я чувствую, если бы мои навыки LINQ были больше ниндзя, я мог бы сделать это с помощью некоторого умного GroupBy / SelectMany (или что-то ?!).
В общих чертах, вопрос таков: учитывая список объектов в каком-то порядке, где у каждого объекта есть флаг, как мне разбить список на подсписки, где каждый подсписок - это все смежные точки, где установлен флаг ?
Обязательный способ сделать это был бы похож на следующий псевдокод:
foreach object obj
if(obj.FlagSet)
add it to my currentsublist
else
skip to the next obj where FlagSet and start a new sublist
Итак, с учетом следующего ввода:
{1, Flag}, {2, Flag}, {3, NoFlag}, {4, Flag}, {5, NoFlag}, {6, Flag} ...
Я хотел бы следующий вывод:
Список 1: {1, 2} Список 2: {4} Список 3: {6}
И я хотел бы сделать это функционально через LINQ. Есть идеи?
(Сначала я посмотрел вокруг, но все вопросы, которые я мог видеть, казалось, хотели либо просто сгруппировать список, либо разделить на равные размеры, что мне не помогло.)