Wpis z mikrobloga

#csharp
Jest w LinQ jakiś automatyczny sposób na rozbicie listy na kilka list, gdzie separatorem jest jakaś wartość? Przykładowo, mam listę intów: 1, 2, 3, 1, 4, 5, 1, 8 i chcę otrzymać 3 listy: (1, 2, 3), (1, 4, 5), (1, 8).
Teraz mam to zrobione w ten sposób, że wyciągam pozycje separatora na liście, a potem dzielę tę pierwszą listę przy użyciu metody Take(). Wyszło tego około 10 linijek, chętnie zastąpię to jedną ( ͡° ͜ʖ ͡°)
  • 7
@Jurij_Iwanowicz_Gorki:

var result = string.Join("|", tempCollection).Split('1').ToArray().Select(x=>x.Split('|').Where(y=>!string.IsNullOrEmpty(y))).Where(x=>x.Any()).Select(x=>(new List(){"1"}).Concat(x));
działa ale nie używaj tego nigdzie ( ͡° ͜ʖ ͡°)