Это должно работать практически для каждой версии фреймворка ...
foreach (string HashKey in TargetHash.Keys)
{
Console.WriteLine("Key: " + HashKey + " Value: " + TargetHash[HashKey]);
}
Хитрость в том, что вы можете получить список / коллекцию ключей (или значений) заданного хеша для перебора.
РЕДАКТИРОВАТЬ: Wow, вы пытаетесь немного раскрасить свой код и следующая вещь, вы знаете, там 5 ответов ... 8 ^ D