Du kannst das Dictionary in eine List<KeyValuePair> umwandeln.
List<KeyValuePair<int, MyClass>> keyValueList = new List<KeyValuePair<int, MyClass>>(myDictionary);
Die kannst du dann anhand der ID sortieren.
for (int i = 0; i < keyValueList.Count - 1; i++)
{
for (int j = 0; j < keyValueList.Count - i - 1; j++)
{
if (keyValueList[j].Value.ID > keyValueList[j + 1].Value.ID)
{
// Tausche Elemente
var temp = keyValueList[j];
keyValueList[j] = keyValueList[j + 1];
keyValueList[j + 1] = temp;
}
}
}
und wieder zu einem Dictionary zurück umwandeln.
Dictionary<int, MyClass> sortedDictionary = new Dictionary<int, MyClass>();
foreach (var pair in keyValueList)
{
sortedDictionary.Add(pair.Key, pair.Value);
}