这个伪代码的 LINQ 等效项是什么:“给定一个字符串列表,对于每个不包含制表符的字符串,将它(使用竖线分隔符)连接到前一个字符串的末尾,并且返回结果序列”?
更多信息:
我有一个 List<string>
表示制表符分隔的文本文件中的行。每行的最后一个字段始终是一个多行文本字段,并且该文件是由一个错误的系统生成的,该系统错误地处理了带有嵌入换行符的字段。所以我最终得到了这样一个列表:
1235 \t This is Record 1
7897 \t This is Record 2
8977 \t This is Record 3
continued on the next line
and still continued more
8375 \t This is Record 4
我想通过将所有孤立行(没有制表符的行)连接到上一行的末尾来合并此列表。像这样:
1235 \t This is Record 1
7897 \t This is Record 2
8977 \t This is Record 3|continued on the next line|and still continued more
8375 \t This is Record 4
用 for()
解决这个问题loop 会很容易,但我正在努力提高我的 LINQ 技能,我想知道是否有一个相当有效的 LINQ 解决方案来解决这个问题。有吗?
最佳答案
这不是应该用 LINQ 解决的问题。 LINQ 专为枚举而设计,而这最好通过迭代来解决。
正确枚举序列意味着没有项目知道其他项目,这显然不适用于您的情况。使用 for
循环,这样您就可以干净利落地按顺序一个接一个地遍历字符串。
关于c# - 基于下一个元素值的 LINQ 条件聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9935150/