Имеет смысл загрузить его в список в памяти и выполнить поиск в списке. Будет ли список такого размера оставаться проблемой в памяти?
Если ваши слова не очень долго, память здесь не будет проблемой.
Если вы говорите об английском языке на стандартном латинском алфавите, тогда память не будет проблемой.
Но вы должны быть конкретными в отношении длины слова. Если вы имеете дело с, скажем, словами на {A, C, G, T}
, и эти слова бывают ДНК, тогда да, память будет проблемой.
Любые предложения по загрузке и поиску этого типа списка будут оценены.
Какой поиск вы занимаетесь? Вы ищете существование или ищете ближайший матч (скажем, ближайший алфавитный матч)? Если только существует, используйте HashSet<string>
. Если ближайшее совпадение в алфавитном порядке, я бы начал с отсортированного List<string>
и выполнил двоичный поиск. Но если ваши слова очень длинные, я могу рассмотреть нечто вроде дерева префиксов.
Ответ на этот последний вопрос во многом зависит от того, что именно вы делаете.
Каков формат файла? Какое у вас самое длинное слово? –
Какой поиск вы хотите выполнить? – spender
Как насчет использования 'Regular Expression'? –