Что ж, класс Dictionary<K,V>
использует внутреннюю хеш-таблицу для хранения своих ключей, поэтому подразумеваемый порядок отсутствует. Порядок, в котором вы добавили ключи, не сохраняется, поэтому на самом деле нет никакого реального способа «отменить» это.
Но, сказав, что если у вас есть упорядоченная коллекция, такая как List или SortedDictionary , вы можете использовать метод LINQ Reverse , чтобы отменить любую последовательность.
Обновление
В ответ на ваше обновление о наличии SortedDictionary, пожалуйста, обратитесь к методу Enumerable.Reverse, на который я ссылался выше. Вы можете перевернуть словарь (как коллекцию KeyValuePair или его свойство Keys как коллекцию строк).
SortedDictionary<string,object> dictionary = blah;
var keyValuePairs = dictionary.Reverse();
var keys = dictionary.Keys.Reverse();