Dictionaries, Lambda and LINQ
Здравейте,
Колеги, имам нужда от малко разяснение по въпроса, защото срещам трудности при задачите.
Първи въпрос:
Имам речник ( Dictionary<string, Dictionary<string, double>> ), който след въведени данни има вида (стойностите са примерни):
Pesho | Sweets | 0.50
| Butter | 0.60
Sum(1.10)
Gosho | Bread | 0.70
| Beer | 0.90
Sum(1.60)
Как да го сортирам по низходящ ред на сумата от стойностите и самите стойности да са сортирани по низходящ ред, както да показано:
Gosho | Beer | 0.90
| Bread | 0.70
Sum(1.60)
Pesho | Butter | 0.60
| Sweets | 0.50
Sum(1.10)
Втори въпрос:
Каква аджеба структура от данни се ползва тук ????
var products = productsList |
.OrderByDescending(p => p.Value) |
.Take(3) |
.Select(p => new KeyValuePair<string, double>(p.Key, p.Value * 0.9));
Ще оценя вашата помощ !!
Вече не знам, кое какво може да прави и затова питам
И все пак нищо не ми се получи. За по-лесно качвам целия код на задачата.
Та има един коментар, под който нямам идея каква структура от данни се използва зад VAR.
А сортирането и принтирането най-долу пак не става. Ако кажеш, че кода не струва, трия и почвам на нова, но просто тая сортировка ми е последната част
https://pastebin.com/UqWHFmkM
Ето и условие (Зад. 4)
https://softuni.bg/trainings/resources/officedocument/16685/exercise-problem-descriptions-programming-fundamentals-extended-may-2017
KeyValuePair<string, double> || Tuple<string, double> => are read Only!!!
за да направиш намалението можеш просто => .Select(x => x.Value * 0.9)
освен това като променяш речник е хубаво да проверяваш дали има такъв ключ или стоиност
след ползване на селект която и да е колекция става на IEnumerable<string, <string, double>> - това е общо казано като универсална колекция, като посочиш с мишката върху var ти показва какво е в момента - примерно за вложен речник,
ако искаш само да го фориичнеш и принтираш е ок но ако ще работиш още с него го превръщаш отново в нужната колекция с
.ТoDictionary(x => x.Key, x => x.Value.ToDictionary(y => y.Key, y => y.Value))
P.S. - ето тук можеш да разгледаш мои решения ако ти е интересно
Определено ще поразмишлявам над думите ти :)
Нов ми е материала и неща като ( .ТoDictionary(x => x.Key, x => x.Value.ToDictionary(y => y.Key, y => y.Value)) ), ме гръмват отвсякъде.
Мисля да почна задачата нанова, за да осмисля по-добре нещата.
Благодаря за помощта !
Много внимателно ще поразмишлявам над думите ти :)
Нов ми е материала и неща, като ( .ТoDictionary(x => x.Key, x => x.Value.ToDictionary(y => y.Key, y => y.Value)) ), направо ме гръмват отвсякъде.
Трия всичко и почвам отначало, за да мога да осмисля както се случва.
Благодаря !