>>Sorry, I'm being dense. So you have a piece of text with 16,000-40,000 words. What are you doing with Mid() ?
>
>The number of words is mostly around 2000 to 4000. The 16-40 is about the size of the text such as 20k. Mid() is used to locate a word in the search. Based on it, I then have to apply some parsing.
So you have two strings - one with say 3,000 words and another of about 20K with x words. If the likelihood of words in the 'search for' string not appearing in the 'search in' string is fairly high you could use linq to obtain a list of words that *did* occur and use that as a basis for further manipulation. Something like:
static public List<string> WordsInTarget(string searchFor, string searchIn)
{
List<string> s = (from x in searchIn.Split() select x).ToList();
return (from x in searchFor.Split().Where(x => s.Contains(x)) select x).Distinct().ToList();
}
No idea how it would compare speed-wise tho. And Split() might need some parameters....