Loading...
peter1998 avatar peter1998 5 Точки

Proggraming Fundamentals / Tech Module

Приятели решавам една задача Population Counter до края на задачата съм , но немога да продължа с изпринтването на речниците ми , Collect-нал съм тоест събрал съм данните във 2 речника .Отдолу ще пусна кода и  Искам да разбера как мога да взема Keyovete на единия речник и да се подредят в реда както са на друг речник , да и 2та са с еднакъв брой елементи , единия е със сортирани Keyove другия трябва да стане същия като първия , и другия ми въпрос е как да изпринтирам съдържанието на речника ми countryCity = new Dictionary<string, List<string>>(); като е със лист

 

var stopWatch = new Stopwatch();
            stopWatch.Start();
            var input = Console.ReadLine();

            var countryCity = new Dictionary<string, List<string>>();
            var cityPopulation = new Dictionary<string, int>();
            var countryTPopulation = new Dictionary<string, int>();
            
            var totalPop = 0;

            while (input!="report")
            {
                var split = input.Split('|').ToArray();
                var city = split[0];
                var country = split[1];
                var population = Int32.Parse(split[2]);

                cityPopulation[city] = population;
                countryTPopulation[country] = population;
                if (countryCity.ContainsKey(country))
                {
                    countryCity[country].Add(city);
                    if (countryCity[country].Count>1)
                    {
                        totalPop = cityPopulation.Values.Aggregate((a, b) => a + b);
                        countryTPopulation[country] = totalPop;
                    }
                }
                else
                {
                    countryCity.Add(country, new List<string>());
                    countryCity[country].Add(city);
                }
                
                

               

               
                input = Console.ReadLine();
            }

            countryTPopulation = countryTPopulation.OrderByDescending(p => p.Value).Take(5).ToDictionary(p =>p.Key,p =>p.Value);
            countryCity = countryCity.OrderByDescending(p => p.Value).Take(5).ToDictionary(p => p.Key, p => p.Value);

//да се довърши

stopWatch.Stop();

 

задачата-->https://imgur.com/a/fXxLD

0
Module: C# Advanced
Aguzelov avatar Aguzelov 78 Точки

 Това е за принтирането на речник:

foreach(var pair in countryCity){
    Console.WriteLine($"key -> {pair.Key}  :  value -> {string.Join(" ", pair.Value)}")
}

В твоя случай pair.Value е ключ от cityPopulation!

Разгледай как се прави с вложен речник тази задача. Dictionary<string, Dictionary<string, int>> population

0
peter1998 avatar peter1998 5 Точки

Много благодаря ,че някой отговори . Доста насочливо, а тази задача май ще скоча на дълбокото с Dictionary <<string,Dictionary<string,int>> 

 

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