我有一个文件,我已阅读所有使用的行 List lines = File.ReadAllLines(path).ToList(); 列表是这样的:
Remove lines here
...
BEGIN READ
X
Y
Z
END READ
more lines to remove
...
我想保留“BEGIN READ”和“END READ”之间的部分,不包括那些触发器。 如何过滤掉这些行?
答案 0 :(得分:4)
您可以使用Enumerable.SkipWhile
和TakeWhile
来处理此问题:
var linesOfInterest = lines
.SkipWhile(l => l != "BEGIN READ")
.Skip(1)
.TakeWhile(l => l != "END READ");
这将返回这两个标记之间的行。额外的Skip(1)
可以跳过实际的"BEGIN READ"
行本身。
答案 1 :(得分:2)
var lines = File.ReadLines(fname)
.SkipWhile(line => line != "BEGIN READ")
.TakeWhile(line => line != "END READ")
.Skip(1)
.ToList();