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
A trie or suffix tree would help in making this faster - this is essentially what fulltext search (usually) is using.
There are implementations in C# you can use, also see this SO thread: Looking for the suffix tree implementation in C#?
Also as mentioned by @leppie parallel execution will likely be already provide you with the x3 performance gain you are looking for. But then again you will have to measure closely, without that it's anyone's guess.