Вы можете сохранить копию предыдущей строки в цикле, а затем использовать дополнительный ReadLine () после цикла.
pubic string[] getLines(string value, int linesBefore, int linesAfter){
_streamReader = new StreamReader("file.tmp");
string[] returnValue;
string Line = _streamReader.ReadLine();
string prevLine;
while (Line.instr() < 0)
{
prevLine = Line;
Line = _streamReader.ReadLine();
}
string postLine = _streamReader.ReadLine();
returnValue = prevLine + Line + postLine;
}
Если вам нужно несколько строк до / после, создайте «скользящий» массив для prevLines и цикл while для хранения postLines в массиве, используя больше вызовов ReadLine.