Linq 链式林克带

Linq 链式林克带,linq,Linq,我最近编写了以下代码来将css文件拆分为块: Dim seg = css.Take(css.Length / segmentCount).TakeWhile(Function(x) x <> "}"c).Take(1) 我的想法是,我拿了一大块css,然后继续拿,直到我碰到一个右大括号,然后再拿大括号 显然,这不起作用,我意识到为什么它几乎不能立即在两次通话之间保持Take针 我的问题是,考虑到LINQ查询的字符串可能是300000个字符或更长,有没有办法有效地将这个想法写成LIN

我最近编写了以下代码来将css文件拆分为块:

Dim seg = css.Take(css.Length / segmentCount).TakeWhile(Function(x) x <> "}"c).Take(1)
我的想法是,我拿了一大块css,然后继续拿,直到我碰到一个右大括号,然后再拿大括号

显然,这不起作用,我意识到为什么它几乎不能立即在两次通话之间保持Take针

我的问题是,考虑到LINQ查询的字符串可能是300000个字符或更长,有没有办法有效地将这个想法写成LINQ查询


最后,我使用了SubString和IndexOf的组合,但是LINQ中的一行将很有趣

作为旁白,如果需要整数除法,请使用css.Length\segmentCount,否则它将返回一个Double。此外,没有什么比字符串方法更有效的了。我知道字符串方法是最有效的,是的。但在学术上,我想知道是否存在AndTake选项。我也不知道\作为一名操作员。VB很奇怪。\n是默认情况下C中的/。如果您想维护取针,您必须跳过上次取针的部分。但正如你可能已经知道的那样,这并不是真正有效的。您正在多次循环字符串。您正在查找。