SQL Serverとの比較で言うならDictionaryじゃなくてKey-value storeじゃないか
あと.NETのString::GetHashCodeは結果をキャッシュしないからあまり性能が良くない