Сортиране на стойности във вложен речник C#
Привет. Решавам задачка. Прецених да използвам вложен речник.
var dict = new Dictionary<string, Dictionary<int, double>>();
След всички манипулации по услвието съдържанието на речниците са с верните стойности. Проблемът е, че не успявам да сортирам в низходящ ред стойностите в най-крайната стойност double.
Пробвам
foreach (var word in dict)
{
foreach (var num in word.Value.OrderByDescending(x=>x.Value))
{
Console.WriteLine($"{word.Key} -> {num.Key} times ({num.Value:f2}%)");
}
}
Проблемът е, че стойностите излизат в реда, в който са влезли и не се сортират както очаквам
hello -> 3 times (27.27%)
pesho -> 2 times (18.18%)
four -> 1 times (9.09%)
two -> 1 times (9.09%)
gosho -> 2 times (18.18%)
five -> 1 times (9.09%)
six -> 1 times (9.09%)
Желан изход
hello -> 3 times (27.27%)
pesho -> 2 times (18.18%)
gosho -> 2 times (18.18%)
four -> 1 times (9.09%)
two -> 1 times (9.09%)
five -> 1 times (9.09%)
six -> 1 times (9.09%)
- Линк към условие Array Histogram (искам да я реша с речник)
- Линк към Judge
- Моят код
Благодаря!
Едноредовите решения не могат да се дебъгват. Понякога се намира грешката ако е някаква очевидна, но друг път е доста трудно да откриеш къде гърми. Така че за дребни задачки е ок, но за по-големи проекти винаги трябва да се описват нещата по-подробно и четливо. Нямам предвид да се пише излишен код, но да събираме 10 реда в 1 не е добра практика.