假设我有一个txt文件,如:
%Title
%colaborations Destination
1 123
2 456
3 555
%my name Destination
Joe doe $re Washington
Marina Panett $re Texas
..
Laura Sonning $mu New York
%other stuff
如何保存在数组中
array{
("Joe doe $re"),
("Marina Panett $re"),
...,
("Laura Sonning $mu")
}
我需要跳过:
%Title
%colaborations Destination
1 123
2 456
3 555
直到找到
%my name Destination
我会开始阅读,直到文件结尾或我找到"%"
我正在考虑使用string txt = System.IO.File.ReadAllText("file.txt");
,但我不认为读取所有txt是个好主意,因为我只需要一些部分...
答案 0 :(得分:3)
您可以使用Enumerable.SkipWhile
,直到找到所需内容:
string[] relevantLines = File.ReadLines(path)
.SkipWhile(l => l != "%my name Destination")
.Skip(1)
.TakeWhile(l =>!l.StartsWith("%"))
.ToArray();
请注意File.ReadLines
不需要读取整个文件。它类似于StreamReader
。
答案 1 :(得分:1)
读取每一行,一旦该行包含“%my name”,然后按空格分割。