A dictionary can not be sorted. There is no index order like a list or array. You can take the keys of the dictionary and sort the keys, however.
List<string> dictionaryKeys = new List<string>(dict.Keys);
dictionaryKeys.Sort();
Then iterate through the list, retrieving the values in order.
for (i = 0; i < dictionaryKeys.Count; i++)
{
string key = dictionaryKeys[i];
string value = dict[key];
}
This would be a simulated sort of a dictionary.
In the case of a Dictionary with multiple levels, you would have to iterate through all the levels and do this using some kind of logic.
However, if your goal is a sorted dictionary i'm sure there are better ways to store your information, maybe a List<class_you_created_to_hold_all_the_information>
:)