Последовательность действий такая:
1) разбиение текста на лексические единицы (в вашем случае значимыми единицами являются слова). Удобно на выходе получать IEnumerable, представляющий ленивый итератор по словам в тексте.
2) приведение слова к нормальной форме, т. е. к нижнему регистру и, опционально, к общей словоформе (например, для существительных - им. падеж, ед. число, и т.д.)
3) добавление слова в Dictionary, где ключом является само слово, а значением - счётчик:
int count;
dictionary.TryGetValue(word, out count);
dictionary[word] = count + 1;