Высокопроизводительный поиск «содержит» в списке строк в C #

У меня есть список прибл. 500000 струн, каждая прибл. Длина 100 символов. Учитывая поисковый запрос, я хочу идентифицировать все строки в списке, которые содержат поисковый запрос. В настоящий момент я делаю это с простым старым набором данных, используя метод Select ("MATCH% term%"). На моем ноутбуке это занимает около 600 мс. Хотелось бы поскорее, может на 100-200 мс.

Какой будет рекомендуемый подход?

Производительность имеет решающее значение, поэтому я могу обменять объем памяти на лучшую производительность, если это необходимо (в пределах разумного). Список строк не изменится после инициализации, поэтому вычисление хэшей также будет вариантом.

Есть ли у кого-нибудь рекомендации и какие структуры данных C # лучше всего подходят для этой задачи?

15
задан njr101 29 September 2011 в 16:16
поделиться