Вам придется сопоставлять этот текстовый файл несколько раз? Если так, я бы создал HashSet<string>
. В противном случае, просто прочитайте его построчно (я предполагаю, что в строке одна строка) и посмотрите, соответствует ли оно.
152 МБ ASCII закончится как более 300 МБ данных Unicode в памяти - но на современных машинах достаточно памяти, поэтому сохранение всего лота в HashSet<string>
сделает повторные поиски действительно очень быстрыми.
Абсолютный самый простой способ сделать это, вероятно, использовать File.ReadAllLines
, хотя это создаст массив, который затем будет отброшен - не очень хорошо для использования памяти, но, вероятно, не так уж плохо:
HashSet<string> strings = new HashSet<string>(File.ReadAllLines("data.txt"));
...
if (strings.Contains(stringToCheck))
{
...
}