The answers so far imply that you are looking for words but from your question, I gather you are looking to test for possibly complex conditions. If you are looking to test for simple exact matches, use an array of strings to hold your conditions, then loop through the array using IndexOf. For example...
string[] myTests = { "I", "am", "Steven", "King" };
string data = "I am Steven";
Dictionary<int, int> testResults = new Dictionary<int,int>();
for (int idx = 0; idx < myTests.Length; ++idx)
{
int strIndex = data.IndexOf(myTests[idx], StringComparison.InvariantCultureIgnoreCase);
testResults[idx] = strIndex;
}
// Each test index in the results dictionary that is >= 0 is a match, -1 is a failed match
But if you have complex requirements, you could consider using a Regular Expression. Here is one idea, but without a clear understanding of what you are trying to accomplish, it may not be right for you.
//Regex example
string pattern = @"(I|am|Steven)(?<=\b\w+\b)";
string data2 = "I am Steven";
MatchCollection mx = Regex.Matches(data2, pattern);
foreach (Match m in mx)
{
Console.WriteLine("{0} {1} {2}", m.Value, m.Index, m.Length);
}
string negativePattern = @"^.*(?!King).*$";
MatchCollection mx2 = Regex.Matches(data2, negativePattern);
if (mx2.Count != 1)
Console.WriteLine("Contains a negative match.");