Find most occurring word in a txt file
You are trying to count each key separately.  This means you need to iterate through the entire list to count each key.  Instead you can keep a running total of your key's and only have to iterate through your list once:

string[] source = { "test1", "test2", "test3", "test4", "test1", "test1", "test3" };
Dictionary&lt;string, int&gt; dic = new Dictionary&lt;string, int&gt;();

foreach(string s in source){
    if(dic.Keys.Contains(s))
         dic[s] = dic[s]++;
    else
       dic.Add(s, 1);
}


EDIT: I did not include getting the max value as what you have works for that and has already been re-written by thantos