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. Есть идеи?

(Сначала я посмотрел вокруг, но все вопросы, которые я мог видеть, казалось, хотели либо просто сгруппировать список, либо разделить на равные размеры, что мне не помогло.)