Problem 4 - Snowwhite Retake Exam - 05 January 2018 Part II проблем при сортиране
ЗАДАЧА 04. SNOWWHITE ОТ PROGRAMMING FUNDAMENTALS RETAKE EXAM - 05 JANUARY 2018 PART II УСЛОВИЕ
По условие изходът трябва да се подреди по низходящ ред на физиката на джуджетата, което ми е стойност, след това по брой на джуджетата, което ми е ключ. Ако някоя от подредбите не успее стойностите трябва да останат в редът, в който са влезли и тук идва трудната за мен част.
Dictionary<string, int> dwarfs = new Dictionary<string, int>();
foreach (var dwarf in dwarfs.OrderByDescending(x=>x.Value).ThenByDescending(x=>x.Key.Count()))
{
Console.WriteLine($"{dwarf.Key} <-> {dwarf.Value}");
}
Очакван изход
(Yellow) Sasho <-> 4500
(Red) Pesho <-> 2000
(Blue) Tosho <-> 1000
(Green) Gosho <-> 1000
(Stamat) Prakasho <-> 1000
Моят изход
(Yellow) Sasho <-> 4500
(Red) Pesho <-> 2000
(Stamat) Prakasho <-> 1000
(Green) Gosho <-> 1000
(Blue) Tosho <-> 1000
След първото сортиране по числата OrderByDescending(x=>x.Value) стойтостите, които са равни една на друга остават в реда, който са влезли. След следващото сортиране по брой на джуджета от еднакъв цвят, което е необходимо според условието, стойностите който са равни се разбъркват, а не остават в реда, в който са влезли.
- If all sorting criteria fail, the order should be by order of input.