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行.
尝试这个:
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)
| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |