Loading...
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

Моята работа за сега - > https://pastebin.com/ry9AxibS

Опитвам се да е реша с обекти ...

Успявам за , когато се въведе 10\Soldier 

6
1 = BlackBeatles -> Soldier:2000
2 = BlackBeatles -> Worker:1000
1 = Red_Ones -> Soldier:10000
5 = Rm -> Soldier:30000
2 = Red_Ones -> Soldier:20000
10 = RND -> Soldier:100000
10\Soldier  

 

Output : 

 

BlackBeatles - > 2000

Red_Ones -> 30000

Rm -> 30000

 

Исканият край е : (т.е : In the first case, you must print all legions, and the count of soldiers they have from the given soldier type, who’s last activity is LOWER than the given activity. The legions must be printed in descending order by soldier count.)

 

Red_Ones -> 30000
Rm -> 30000
BlackBeatles -> 2000

 

Успявам да ги изваждам , но когато трябва да ги подреда по descending order by soldier count ... не мога да намеря начин как да ги подреда ... 

Мислих си с LINQ на проверката  :  

 

 foreach (SingleLegionInfo item in resultList.OrderByDescending(x => x.SoldierTypeList))
                {
                    SingleSolderTypeAndCount element = item.SoldierTypeList.First(x => x.SoldierType == findType);
                    int result = element.UnitCount;
                    Console.WriteLine($"{item.LegionName} -> {result}");
                }

 

....  // но не мога да продължа да извиквам prop UnitCount след (x => x.SoldierTypeList .... )  ...знам че е в лист , но не знам как да го направя за да може по този начин да ги подрежда ... 

 

пробвах с :

1 )   foreach (SingleLegionInfo item in resultList.OrderByDescending(x => x.SoldierTypeList.Select(y => y.UnitCount)))

2 ) пробвах и с други команди ... но не става 

Има ли някакъв вариант за решение по този начин :( ? или да се отказвам 

0
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

Моята работа за сега - > https://pastebin.com/ry9AxibS

Опитвам се да е реша с обекти ...

Успявам за , когато се въведе 10\Soldier 

6
1 = BlackBeatles -> Soldier:2000
2 = BlackBeatles -> Worker:1000
1 = Red_Ones -> Soldier:10000
5 = Rm -> Soldier:30000
2 = Red_Ones -> Soldier:20000
10 = RND -> Soldier:100000
10\Soldier  

 

Output : 

 

BlackBeatles - > 2000

Red_Ones -> 30000

Rm -> 30000

 

Исканият край е : (т.е : In the first case, you must print all legions, and the count of soldiers they have from the given soldier type, who’s last activity is LOWER than the given activity. The legions must be printed in descending order by soldier count.)

 

Red_Ones -> 30000
Rm -> 30000
BlackBeatles -> 2000

 

Успявам да ги изваждам , но когато трябва да ги подреда по descending order by soldier count ... не мога да намеря начин как да ги подреда ... 

Мислих си с LINQ на проверката  :  

 

 foreach (SingleLegionInfo item in resultList.OrderByDescending(x => x.SoldierTypeList))
                {
                    SingleSolderTypeAndCount element = item.SoldierTypeList.First(x => x.SoldierType == findType);
                    int result = element.UnitCount;
                    Console.WriteLine($"{item.LegionName} -> {result}");
                }

 

....  // но не мога да продължа да извиквам prop UnitCount след (x => x.SoldierTypeList .... )  ...знам че е в лист , но не знам как да го направя за да може по този начин да ги подрежда ... 

 

пробвах с :

1 )   foreach (SingleLegionInfo item in resultList.OrderByDescending(x => x.SoldierTypeList.Select(y => y.UnitCount)))

2 ) пробвах и с други команди ... но не става 

Има ли някакъв вариант за решение по този начин :( ? или да се отказвам 

 

0
20/10/2017 20:46:24
AlucardDracula avatar AlucardDracula 416 Точки

Въпреки колегите, които са дали решение на задачата ето и от мен едно мое старо РЕШЕНИЕ

0
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

// поправката много олесни нещата ... олеснил си ми и структурата и въвеждането  ... само да попитам LINQ функцията    // това ли извършва ? 

// var output e с тип // KeyValuePair<string , Dictionary <string , long>> output =

var output = legionInfoList.Where(x => x.LastActivity < activity)   

// филтрира всички обекти от листа (които имат по-малко                                                                                                //            LastActivity от activity) (т.е взима обектите или маха                                                                                              //            тези, които не отговарят на условието от лист legionInfoList


.ToDictionary(   // остаталите обекти от legionInfoList  .. нека се добавят в речник

 x => x.LegionName,    // това се приема за ключ
 x => x.SoldierTypeList.Where(y => y.SoldierType == soldierType)

// а , листа първо се филтрира за да останат само                                                                                                              //  типът , който ни трябва (и после се приема като value за речника)

                                                                                                           

// след това го преобразуваме SoldierTypeList в речник 
                    .ToDictionary(y => y.SoldierType, y => y.UnitCount))   

// където  y => y.SoldierType (е key) , y => y.UnitCount (е value)

                     
                   .OrderByDescending(c => c.Value.Values.FirstOrDefault()); 

//c е от клас  // KeyValuePair<string , Dictionary <string , long>>  и просто извикваме

//последователността и накрая FirstOrDefault() - за да вземе каквото намери или да  върне default

// (което е null)

// Това ли прави ?

 

0
21/10/2017 13:04:41
spzvtbg avatar spzvtbg 581 Точки

Да уеъра взема всички които отгпварят а останалото превръща структурата в нещо като дикшън  за да се сортира по по вътрешни критерии

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