c# - LINQ;从文本文件中选择行组

标签 c# linq

问候大师,我有一个文本文件,其中包含需要将其分成单独的字符串数组的文本组。如何使用“start:”行作为分隔符对它们进行分组? (组可能包含不同的行数,但全部以“start:”开头。这是 LINQ 可以完成的工作吗?(每行都有单独的数据,在预览中看起来不是这样)。

            List<string> lines = File.ReadAllLines(@"C:\test.txt").ToList();

开始:数据1

男孩:数据2

太棒了:数据3

开始:数据7

男孩:数据8

太棒了:数据 9

女孩:数据10

最佳答案

可能有一个 linq 解决方案,但是当您只需使用 for 循环来处理这个问题时,我认为不需要 linq,例如我认为下面的代码完成了您想要的操作:

        var groups = new List<List<string>>();

        foreach (var line in lines)
        {
            if (line.StartsWith("Start:"))
            {
                groups.Add(new List<string>());
            }
            groups[groups.Count - 1].Add(line);
        }

我假设文件的第一行以 Start: 开头,否则您应该跳过第一行,直到到达第一个 start:

关于c# - LINQ;从文本文件中选择行组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879543/

相关文章:

c# - 调整浏览器窗口大小时如何停止页面刷新(跳转)?

c# - Asp.net MVC 应用程序总是以 403 错误启动

c# - 将 mp4 转换为 mp3

c# - 什么是检查给定值列表是否上下交替的好算法?

c# - 关于在 session 中存储整个 LINQ 对象的想法?

c# - Linq To SQL 和审核更改的字段

c# - 使用 Winform 更新 WPF 文本框用户控件中的文本

c# - 如何从 AccessViolationException 中检索注册上下文?

c# - 如何从数据表中获取最高值?

linq 如何从 var 获取值