我正在文本文件(也包括 XML)中搜索字符串。这是我首先想到的:
using (StreamReader sr = File.OpenText(fileName))
{
string s = String.Empty;
while ((s = sr.ReadLine()) != null)
{
if (s.Contains("mySpecialString"))
return true;
}
}
return false;
我想逐行阅读以尽量减少使用的 RAM 量。找到字符串后,它应该中止操作。我不将它作为 XML 处理的原因是因为它必须被解析并且还会在必要时消耗更多的内存。
另一个简单的实现是
bool found = File.ReadAllText(path).Contains("mySpecialString") ? true : false;
但这会将完整的文件读入内存,这不是我想要的。另一方面,它可能会提高性能。
另一个是这个
foreach (string line in File.ReadLines(path))
{
if (line.Contains("mySpecialString"))
{
return true;
}
}
return false;
但是其中哪一个(或您的另一个?)的内存效率更高?