Самый быстрый поиск информации производится с помощью поискового индекса. Конечно, чтобы его можно было использовать, сперва его нужно составить.
Если в вашем проекте уже используется какая-либо СУБД, поддерживающая полнотекстовый поиск, то логично использовать её. В противном случае, следует поискать какой-либо поисковый движок.
Одним из наиболее известных поисковых движков является Lucene. Устанавливать проще всего с помощью nuget. Пример использования в .NET.
Можно посмотреть на hOOt.
Всегда ли это будет быстрее, чем тупой перебор текстовых файлов? Нет. Однако, даже если количество и размер файлов относительно невелики и они могут целиком уместиться в ОЗУ, то всё равно использование индекса может оказаться быстрее: ведь в большинстве случаев загрузка файлов вообще не понадобится.