我想在当前行下面获得5行和5行。我使用Streamreader逐行读取,Regex用我的模式查找一行(当前行是正则表达式找到模式的行)。 任何建议将不胜感激。 编辑:文件重量约为15GB,因此我无法将它们存储在内存中。
答案 0 :(得分:1)
为什么不存储这5行(之前/之后)?
var cache= new Queue<string>();
using (StreamReader reader = new StreamReader("file.txt"))
{
cache.Enqueue(reader.ReadLine());
if(cache.Count() > 11)
cache.Dequeue(); // clear old stuff
if(cache.Count() == 11) // now you have your 5 before and 5 after
{
var myRow = cache.ElementAt(6); // do stuff
}
}