To group a sequence getting a count for each element of the grouped sequence using Linq:
var wordList = new List<String> { "test", "one", "test", "two" };
var grouped = wordList
.GroupBy(i => i) //Group the words
.Select(i => new { Word = i.Key, Count = i.Count() }); //get a count for each
Which results in this sequence:
