Just ended up doing
foreach(String w in words) {
int points = 0;
char[] c = w.ToCharArray();
foreach(char x in c) {
points += pointsPerCharacter[x.ToString()];
}
wordPoints.Add(w, points);
}
var topWords = wordPoints.OrderByDescending(pair => pair.Value);
As long as it works for now, I'm satisfied. Leaving assignments to the last minute, I'm sure you know how it is