gpt4 book ai didi

c# - 在文本文件中搜索直到特定字符串

转载 作者:太空狗 更新时间:2023-10-30 00:30:57 25 4
gpt4 key购买 nike

我正在编写一个程序来搜索文本文件,其中每个文件中都有一个特定的字符串。目标是忽略该字符串之后的所有内容。我当前的代码读取整个文本文件并返回一个可枚举的结果文件名,其中找到了一个术语。

var searchResults = files.Where(file => File.ReadAllText(file.FullName).Contains(searchTerm)).Select(file => file.FullName);

是否可以忽略该特定字符串之后的所有行?性能很重要,因为有数千个文件。

最佳答案

您可以将查询更改为:

var searchResults = files.Where(file => File.ReadLines(file.FullName).Any(line => line.Contains(searchTerm))
.Select(file => file.FullName));

您可以使用 File.ReadLines 而不是使用 File.ReadAllText,它是惰性求值的,在满足条件时应该停止读取。

https://msdn.microsoft.com/en-us/library/vstudio/dd383503(v=vs.100).aspx

为了使其更快,您还可以使用并行 LINQ:

var searchResults = files.AsParallel()
.Where(file => File.ReadLines(file.FullName).Any(line => line.Contains(searchTerm))
.Select(file => file.FullName));

关于c# - 在文本文件中搜索直到特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com