I have a list of approx. 500,000 strings, each approx. 100 characters long. Given a search term, I want to identify all strings in the list that contain the search term. At
I've heard good things about Lucene.NET when it comes to performing quick full-text searches. They've done the work to figure out the fastest data structures and such to use. I'd suggest giving that a shot.
Otherwise, you might just try something like this:
var matches = list.AsParallel().Where(s => s.Contains(searchTerm)).ToList();
But it probably won't get you down to 100ms.