You can use something similar to this.
class Program
{
public static void Main(string[] args)
{
var str = "Fundamentally programs manipulate numbers and text. These are the building blocks of all programs. Programming languages let you use them in different ways, eg adding numbers, etc, or storing data on disk for later retrieval.. Fundamentally programs manipulate numbers and text.";
foreach (var index in GetIndexes(str, "programs manipulate",' '))
{
Console.WriteLine(index);
}
Console.ReadKey();
}
public static IEnumerable<int> GetIndexes(string str, string search,params char[] delimiters)
{
var index = 0;
var words = str.Split(delimiters).ToList();
var searchwords = search.Split(delimiters);
while (words.Any())
{
if (words.Take(searchwords.Length).SequenceEqual(searchwords))
yield return index;
words.RemoveAt(0);
index += 1;
}
}
}