Если вы ищете только определенную строку, я бы сказал, что строка за строкой - лучший и наиболее эффективный механизм.С другой стороны, если вы собираетесь искать несколько строк, особенно в нескольких разных точках приложения, вам может понадобиться заглянуть в Lucene.Net , чтобы создать индекс, а затем запросить индекс,Если это однократный запуск (т. Е. Вам не потребуется запрашивать тот же файл позже), вы можете создать индекс во временном файле, который будет автоматически очищаться системой (обычно во время загрузки; или выможете удалить его самостоятельно при выходе из программы).Если вам понадобится выполнить поиск в том же файле позже, вы можете сохранить индекс в известном месте и во второй раз получить гораздо лучшую производительность.