Poniżej podamy posortowany słownik oparty na Twoim OrderedDictionary.
var normalOrderedDictionary= od.Cast<DictionaryEntry>()
.OrderBy(r=> r.Value)
.ToDictionary(c=> c.Key, d=> d.Value);
Jest jedna rzecz, chociaż, ToDictionary
powrócił regularne słownika ale kolejność jest utrzymywana w słowniku dla odnośnika, tak szybko, jak każdy nowy element jest wstawiany w słowniku, że zamówienie nie może być zagwarantowana. Aby tego uniknąć, należy SortedDictionary<TKey,TValue>
który ma konstruktora, które odbywają regularne słownika jako parametr
var sortedDictionary = new SortedDictionary<string, string>(normalOrderedDictionary);
(upewnij się, aby zastąpić string
z poprawnych typów dla kluczy i wartości w powyższej linii).
wyjściowa:
foreach (var entry in sortedDictionary)
Console.WriteLine("Key: {0} Value: {1}", entry.Key, entry.Value);
Key: a3 Value: 2
Key: a1 Value: 3
Key: a4 Value: 4
Key: a2 Value: 5
Dzięki Habib ... twoja odpowiedź też zadziałała. Po prostu nie mam zbyt wielu punktów reputacji. –
OK dzięki .. Należy powiedzieć stackoverflow po prostu skały .. !! –
@LalaTrivedi, zapraszam – Habib