问候大师,我有一个包含文本组的文本文件,我需要分成单独的字符串数组。如何使用“start:”行作为分隔符对这些进行分组? (组可能包含不同的行数,但都以“start:”开头。这是LINQ可以完成的工作吗?(每行都有单独的数据,在预览中看起来不那样)。
List<string> lines = File.ReadAllLines(@"C:\test.txt").ToList();
开始:数据1
男孩:数据2
很棒:数据3
开始:数据7
男孩:数据8
很棒:数据9
女孩:数据10
答案 0 :(得分:3)
可能有一个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:
。
答案 1 :(得分:0)
File.ReadAllText(@"C:\test.txt").split("start:");
将读取文件并将文件拆分为start:tag上的字符串数组。