我正在编写一个程序来帮助我在数千个文件中搜索关键字。这些文件中的每一个都有我需要忽略的不必要的行,因为它们会干扰结果。幸运的是,它们都位于这些文件中的特定行之后。
我已经得到的是搜索,不忽略特定行之后的行,返回包含关键字的文件名的可枚举。
var searchResults = files.Where(file => File.ReadLines(file.FullName)
.Any(line => line.Contains(keyWord)))
.Select(file => file.FullName);
有没有一种简单快速的方法来实现这个功能?它不一定必须在 Linq 中,因为我什至不确定这是否可能。
编辑:
一个例子让它更清楚。
文本文件的结构如下:
xxx
xxx
字符串
yyy
yyy
我想搜索 xxx 行,直到找到关键字或字符串,然后跳到下一个文件。我想在搜索中忽略的 yyy 行。
最佳答案
试试这个:
var searchResults = files.Where(file => File.ReadLines(file.FullName)
.TakeWhile(line => line != "STOP")
.Any(line => line.Contains(keyWord)))
.Select(file => file.FullName);
关于c# - 在文本文件中搜索关键字,直到遇到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719022/