LINQ consulta para dividir uma lista ordenada em sublistas de pontos contíguos por alguns critérios

Procurando ajuda para escrever uma consulta LINQ em alguns objetos. Eu sinto que se minhas habilidades em LINQ fossem mais ninjas, eu poderia fazer isso com alguns GroupBy / SelectMany inteligentes (ou algo assim?!).

Estada genericamente, a pergunta é: dada uma lista de objetos em algum tipo de ordem, onde cada objeto tem uma bandeira, como dividir a lista em sub-listas, onde cada sub-lista é todos os pontos contíguos em que a bandeira é conjunto

Uma maneira imperativa de fazer isso seria como o seguinte pseudocódigo:

foreach object obj
  if(obj.FlagSet) 
    add it to my currentsublist
  else
    skip to the next obj where FlagSet and start a new sublist

Então, dada a seguinte entrada:

{1, Flag}, {2, Flag}, {3, NoFlag}, {4, Flag}, {5, NoFlag}, {6, Flag} ...

Gostaria da seguinte saída:

Lista 1: {1, 2} Lista 2: {4} Lista 3: {6}

E eu gostaria de fazê-lo funcionalmente via LINQ. Alguma ideia

(Eu olhei em volta primeiro, mas todas as perguntas que pude ver pareciam simplesmente agrupar uma lista ou dividir em tamanhos iguais, o que não me ajudou.)

questionAnswers(4)

yourAnswerToTheQuestion