Loading...
Elena123456 avatar Elena123456 235 Точки

1.Ranking- More Exercises: Associative Arrays- corelation betwen values of two Dictionaries

I need some help  for this exercise. If somebody have some spare time, could they, please check my print method at the end. I think my logic is correct, but I can't print each contest with the points in descending order, because the information from the another list becomes invalid.

I have two dictionaries:   var usernamesListOfContests= new SortedDictionary<string, List<string>>() with username and all the contests per user and var usernamesListOfPoints= new Dictionary<string, List<int>>() with username and all points.

If I change the order in the second dictionary, the information in the first dictionary becomes invalid and incorrect. I need some corelation betwen those two lists when I try to sort and print the result. I'am not very confident to use dictionary from dictionaryies.

Thanks in advance.

 

https://softuni.bg/trainings/resources/officedocument/38560/more-exercise-technology-fundamentals-with-csharp-january-2019/2237

https://judge.softuni.bg/Contests/Practice/Index/1302#0

https://pastebin.com/7FLT6E0i - 40/100

 

Console.WriteLine("Ranking: ");

foreach (var kvp in usernamesListOfContests)

{

string username = kvp.Key;

Console.WriteLine($"{username}");

var listOfContest = kvp.Value;

var listOfPoints = usernamesListOfPoints[username];

for (int i = 0; i <listOfContest.Count() ; i++)

{

Console.WriteLine($"# {listOfContest[i]} -> {listOfPoints[i]}");

}

0
C# Fundamentals 06/11/2020 18:21:57
nickwork avatar nickwork 657 Точки

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

foreach (var kvp in usernamesListOfContests)
            {
                string username = kvp.Key;
                Console.WriteLine($"{username}");
                var listOfContest = kvp.Value;
                var listOfPoints = usernamesListOfPoints[username];

                var temp = new Dictionary<string, int>();

                for (int i = 0; i < listOfContest.Count(); i++)
                {
                    temp[listOfContest[i]] = listOfPoints[i];
                }

                foreach (var (contest, points) in temp.OrderByDescending(x => x.Value))
                {
                    Console.WriteLine($"#  {contest} -> {points}");
                }
            }

1
Elena123456 avatar Elena123456 235 Точки

Благодаря много! :)

Разбрах вече- връзката между стойностите на двата листа от съответните речници се прави отново с речник. И така срещу всеки стринг от listOfContest стои съответния инт от listOfPoints. След прилагането на OrderByDescending върху новосъздадения речник, вече няма разместване на данните.

Никога повече няма да се зачудя как се прави връзката между стойностите на два речника. :)

Благодарение на Вас, вече имам решение 100/100 https://pastebin.com/X03WQr2e

Поздрави и хубава вечер!

0
Axiomatik avatar Axiomatik 2422 Точки

  

1
06/11/2020 19:57:42
Elena123456 avatar Elena123456 235 Точки

Axiomatic, thanks a lot.

It was not very complicated to use dictionary from dictionaries. :)

I would be tryng in the next exercise.

Best regards!

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