For the following block of code:
For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next
Have you tested the speed?
i.e. Have you created a sample set of data and profiled it? It may not be as bad as you think.
This might also be something you could spawn off into a separate thread and give the illusion of speed!