我正在尝试优化对大型文本文件(300-600mb)中字符串的搜索。使用我目前的方法,花费的时间太长。
目前我一直在使用IndexOf
搜索字符串,但是用字符串为每一行建立索引所花费的时间太长(20s)。
如何优化搜索速度?我已经尝试过Contains()
,但这也很慢。有什么建议么?我在考虑正则表达式匹配,但我没有看到它有显着的速度提升。也许我的搜索逻辑有缺陷
例子
while ((line = myStream.ReadLine()) != null)
{
if (line.IndexOf(CompareString, StringComparison.OrdinalIgnoreCase) >= 0)
{
LineIndex.Add(CurrentPosition);
LinesCounted += 1;
}
}