在文本文件中搜索关键字,直到遇到字符串

dro*_*ing 5 c# linq performance

我正在编写一个程序来帮助我在数千个文件中搜索关键字.这些文件中的每一个都有不必要的行,我需要忽略它们,因为它们会混淆结果.幸运的是,它们都位于这些文件中的特定行之后.
我已经得到的是搜索,不忽略该特定行之后的行,返回包含关键字的文件名的Enumerable.

var searchResults = files.Where(file => File.ReadLines(file.FullName)
                                            .Any(line => line.Contains(keyWord)))
                                            .Select(file => file.FullName);
Run Code Online (Sandbox Code Playgroud)

是否有一种简单快速的方法来实现此功能?它不一定必须在Linq,因为我甚至不确定这是否可能.

编辑:
一个让它更清晰的例子.这就是文本文件的结构:
xxx
xxx
string
yyy
yyy

我想搜索xxx行,直到找到关键字或字符串,然后跳到下一个文件.我想在搜索中忽略yyy行.

Gha*_*san 4

尝试这个:

var searchResults = files.Where(file => File.ReadLines(file.FullName)
                                            .TakeWhile(line => line != "STOP")
                                            .Any(line => line.Contains(keyWord)))
                                            .Select(file => file.FullName);
Run Code Online (Sandbox Code Playgroud)