Buscando ayuda para escribir una consulta LINQ en algunos objetos. Siento que si mis habilidades de LINQ fueran más ninjas, podría hacer esto con algún inteligente GroupBy/SelectMany (¡o algo así!).Consulta de LINQ para dividir una lista ordenada en sublistas de puntos contiguos según algunos criterios
En términos genéricos, la pregunta es: dada una lista de objetos en algún tipo de orden, donde cada objeto tiene una bandera, ¿cómo puedo dividir la lista en sublistas, donde cada sublista es todos los puntos contiguos donde la bandera está puesta?
forma imperativa de hacer esto sería como el siguiente 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
Por lo tanto, dada la siguiente entrada:
{1, Bandera}, {2, Bandera}, {3, noetiqueta}, {4, Bandera}, {5, noetiqueta}, {6} Bandera ...
me gustaría que el siguiente resultado:
Lista 1: {1, 2} Lista 2 : {4} Lista 3: {6}
Y me gustaría hacerlo funcionalmente a través de LINQ. ¿Algunas ideas?
(He mirado alrededor primero, pero todas las preguntas que pude ver que parecía que desee, ya sea simplemente una lista o grupo a dividirse en igual tamaño, que no ha sido de gran ayuda para mí.)
D'oh! Por lo general, alrededor de un segundo después de publicar esto, descubrí el método .TakeWhile() que parece que va a ser muy útil. Sin embargo, todavía se agradecen las respuestas. – randomsequence