Как мога да сортирам вложен речник?
В една изпитна задача се налага да сортирам вложен речник от вида: date=<string,Dictionary<string,int>.
Направил съм всичко необходмо и искам да си изведа речника,но за целта ми е необходимо да сорирам речника по Valuo-то на вътрешният речник.
Правя си foreach цикъл и пиша:
foreach (var name in date.OrderByDescending(s => s.Value.Values).Keys)
{
..................................................................
}
, но VS не го приема за верно(оцветява последната дума Keys в червено).
Къде греша и как да го оправя?
Мерси майна,
Асистенцията ти е успешна,но сега (след като махнах Keys) ми излиза нова грешка:
Във сколпа на foreach-a се опитвам да завъртя втори foreach,но VS ми казва ,че не мога да достъпя вътрешното Dictionary със:
date[name]-name е подчертано с червено.
foreach (var name in date.OrderByDescending(s => s.Value.Values)
{
foreach (var color in date[name].Keys)
{
Console.WriteLine($"({color}) {name} <-> {date[name][color]}");
}
}
Имаш ли идея как да завъртя вътрешния цикъл по ключовете на вътрешният речник?
:)
Ами правиш глупости. Foreach не позволява такива неща и итерирането по различни индекси. Просто смени поредицата няма как докато foreach -ваш вътрешния да итерираш върху външния ... а и ти ключа го имаш ще ти е нещо от сорта на. [date][key][name] и толкова. Малко не разбшрам какво се опитваш да направиш. И честно с един лек обект тжва ще стане с пъти по -лесно.
Става въпрос за една изпитна задача от тех-а,която се опитвам да напиша на C#.-Snowwhite.
Условието може да се види от тук:
https://softuni.bg/trainings/resources/officedocument/32247/exercise-problem-descriptions-group-2-programming-fundamentals-may-2018/1939
След като получим вход"Имало едно време" трябва да се изпринти речника dwarfdate,сортиран по Value-то на вътрешния ключ във възходящ ред(orderbydecsending).
Това се опитвам да направя.
:)