Alto desempenho "contém" pesquisa na lista de strings em C #

Tenho uma lista de aprox. 500.000 cordas, cada uma aprox. 100 caracteres. Dado um termo de pesquisa, desejo identificar todas as seqüências de caracteres na lista que contêm o termo de pesquisa. No momento, estou fazendo isso com um conjunto de dados antigo simples usando o método Select ("MATCH% term%"). Isso leva cerca de 600ms no meu laptop. Gostaria de torná-lo mais rápido, talvez 100-200 ms.

Qual seria uma abordagem recomendada?

@Performance é essencial para que eu possa trocar a pegada de memória por melhor desempenho, se necessário (dentro do razoável). A lista de strings não será alterada após a inicialização, portanto, o cálculo de hashes também seria uma opçã

lguém tem uma recomendação e quais estruturas de dados C # são mais adequadas para a taref

questionAnswers(7)

yourAnswerToTheQuestion