Поиск файлов по содержимому

Здравствуйте. Я пишу программу для работы с текстовыми файлами (.txt). У меня есть код, осуществляющий поиск всех файлов, в которых есть введённая пользователем строка или слово. Но мне нужно, чтобы программа находила все файлы, в которых встречаются введённые пользователем слова или строки (не одно слово или строка, а несколько!). Помогите, пожалуйста!
Вот сам код. Как его переделать под эту задачу?

DirectoryInfo dir = new DirectoryInfo("C:\\Kulinarnaya_Kniga\\" + papka);
List<string> fileList = new List<string>();
 
Console.Write("Введите слово для поиска: ");
string searchText = Console.ReadLine();
 
foreach (var file in dir.GetFiles("*.txt", SearchOption.AllDirectories))
{
    fileList.Add(file.FullName);
}
 
foreach (var file in fileList)
{
     string tmp = File.ReadAllText(file);
     if (tmp.IndexOf(searchText, StringComparison.CurrentCulture) != -1)
     {
         Console.WriteLine("Совпадение в файле \"{0}\"\t найдено", file);
     }
     else
     {
         Console.WriteLine("Совпадений в файле \"{0}\"\t не найдено", file);
     }
}

Так а проблема в чем именно?

Если надо проверить, что все слова есть в файле, то просто повторяйте эту проверку для каждого слова.

Либо цикл с флагом (hasAllWords = true, проверять слова пока находятся, если встретилось несуществующее — hasAllWords = false), либо аналогично функция с return true/false, либо All.

Вместо этого проще Contains.