Loading...
athanatos avatar athanatos 4 Точки

Сортиране на nested dictionaries

здравейте,

може ли някой да помогне- има ли вариант да се сортира външния речник по Value-то на вътрешния.
Това е примера:
https://pastebin.com/ZtvXH2MH

при този вход:
Bulgaria Sofia 1000
Germany Berlin 5000
Japan Tokyo 10000
England London 4000
end

да изкара (сортиране по низходящ ред, примерно)

Japan Tokyo 10000
Germany Berlin 5000
England London 4000
Bulgaria Sofia 1000

Благодаря предварително.

Тагове:
0
Programming Fundamentals
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

OrderbyDescending(x=>x.Value.Values.Sum) нещо такова ще е 

или OrderbyDescending(x=>x.Value.Values)

0
28/06/2018 14:16:53
k.sevov avatar k.sevov 1077 Точки

Това второто ще се опита да сортира самите колекции и предполагам ще гръмне с "...doesn't implement IComparable". 

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

мда наясно съм че може да има синтактични грешки,просто нямам vs да пробвам но горе долу това е общата идея после вече ще си го нагласи.

0
k.sevov avatar k.sevov 1077 Точки

Във вътрешния речник имаш много стойности за всеки външен ключ, а не само по една. Може да подредиш по сумата на тези стойности (x => x.Value.Values.Sum()), по максималната от тях (x => x.Value.Values.Max()) и т.н., но просто да подредиш по "стойността на вътрешния" няма логика. Ако в конкретния случай си го написал във вътрешния винаги да има само по една стойност, това със сумата ще ти свърши работа, но реално в такива ситуации не ти трябва вложен речник.

0
28/06/2018 15:06:44
athanatos avatar athanatos 4 Точки

ясно, разбрах.

Много благодаря и на двамата за бързите отговори.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.