Shadowed:
Ako pricamo o Dictionary<TKey, TValue>, on nema definisan order. Npr. ako pogledas dokumentaciju za
Key property videces da kaze "The order of the keys in the Dictionary<TKey, TValue>.KeyCollection is unspecified".
Ono sto ti treba je implementacija IEnumerable interfejsa koji brine o redosledu (array, lista, sta ti je vec prakticno). Znaci, ako je ovo bio
Dictionary<int, int?>, treba ti ili
IEnumerable<KeyValuePair<TKey, TValue>> ili, verovatno bolje
IEnumerable<Tuple<TKey, TValue>>.
Ako vec imas Dictionary, ne brini, on vec implementira
IEnumerable<KeyValuePair<TKey, TValue>> i mozes lako odraditi sortiranje i konverziju.
Npr. ako bi hteo da sortiras po key-u mogao bi da uradis nesto kao
MyDict.OrderBy(pair => pair.Key).ToList()
Posto ti imas neku drugu logiku za sortiranje, mozes da napravis implementiras IComparer i prosledis ga kao drugi parametar (pogledaj
https://msdn.microsoft.com/en-us/library/bb549422(v=vs.110).aspx).