Homework FunctionalProgramming -> Problem 12
Здравейте колеги :)
Имам малка нужда от помощ за 12та задача. Намерих следното решение на нея в интернет.
var weakStudents = students
.Where(s => s.Marks.Aggregate(0, (counter, mark) => counter + (mark == 2 ? 1 : 0)) == 2)
.Select(s => s.FirstName + " " + s.LastName);
Ако някой може да обясни как работи ще съм много благодарен :D (2ия ред ми е проблемния)
Може да споделите и вашите решения
ModEdit: Моля, прочетете правилата на форума....
Добро решение, Фил. Но не мисля че има смисъл от Select-a накрая. То ти връща всички ученици с 2 2ки, след .Where().ToList() и то прави лист от ученици. Вече можеш да си ги изплюеш.
А Слав, ако трябва да сме точни става нещо такова.
var weakStudents = students
.Where(s => s.Marks.Aggregate(0, (counter, mark) => counter + (mark == 2 ? 1 : 0)) == 2)
.Select(s => s.FirstName + " " + s.LastName);
Намери(аггрегирай) всички студенти с оценки с counter == 2.Това във вътрешнте скоби(mark == 1(return 1 демек като True или False(0))), това си е точно делегат което е подадено в този агрегат. Обаче Фил добре го каза и аз ще го кажа в стил Наков "Този метод го Бастисвам... return Bastiss;":D
Учениците съдържат и други данни, а в условието се иска да върнем само част от тях (пълно име, което е комбинация от първо и второ от класа Student, и оценките), т.е. трябва да ползваме анонимен клас.
Благодаря ви много момчета :) Изключително ми бяхте полезни.
Filkolev твоето решение за мен е доста по-качествено заради по-добрата разбираемост.
Поздрави и на двамата