如何使用linq拆分列表

rat*_*tty 2 c# linq

我有一个int的列表,其中包含值0,0,0,1,2,3,4,0,0现在我想将其拆分为3个列表,如此列表A包含0,0,0而列表B包含1 ,2,3,4和列表C包含0,0.我知道如何使用if和for进行拆分,但是如何使用linq进行拆分.通常的格式我需要拆分开始一些零和中间一些值,最后一些零我需要在一个列表中拆分这个第一个零,一个列表中的中间值和另一个列表中的结束零,正如我在上面的例子中所说的使用linq而且我喜欢采用值的索引.

Jam*_*iec 7

第一.

myList.TakeWhile(x => x==0)
Run Code Online (Sandbox Code Playgroud)

第二个.

myList.SkipWhile(x => x==0).TakeWhile(x => x!= 0)
Run Code Online (Sandbox Code Playgroud)

第三个.

myList.SkipWhile(x => x==0).SkipWhile(x => x!= 0)
Run Code Online (Sandbox Code Playgroud)