11. The Party Reservation Filter Module- 100/100, but incorrect solution
Здравейте,
извинявам се предварително, че отварям тази тема, въпреки че Judge ми дава максималния брой точки, но имам някои неясноти. Въпреки максималния брой точки не получавам еднакви резултати, а разбъркани имена на гостите накрая при принтирането им. Вчера почти цял ден се борих с тази задача- как да добaвям и махам филтри на поканените гости, без значение каква им е последователността на добавяне и на изтриване. Според трейнъра трябва да се използва лист от филтри, но аз така и не успях да осъзная каква е логиката в подобно решение. Не разбирам защо е небходимо да се използва лист от филтри и дали някой би ми обяснил накратко с "думи" (ако е възможно) защо лист от филтри би ни свършил работа?
През нощта ми хрумна едно решение, което е със следната логика- за добавяне на филтър си имаме конкретна фунцкия ("funcAddFilter"), която приема guests, filterType, filterParameter, а за изтриването също има подобна фунцкия ("funcRemoveFilter"), но тя винаги приема първоначалния лист от гости и съответно filterType, и filterParameter. Като за funcRemoveFilter винаги след като получим листа с вече изтрития филтър от гости, ще трябва да си го добавяме към текущия (актуален) списък от гости.
Judge е съгласен с подхода ми, но резултата не е коректен на 100% и друг е въпроса доколко функционално е решението ми и дали е възможно да се подобри. И найстина ще съм благодарна, ако някой ми обясни за решението с лист от филтри или някакво друго, при което се получават правилно подредени резултати, защото при мен винаги се получават разбъркани. И последно- когато се опитвам да използвам Where във функцията, вместо foreach, филтъра прескача и изобщо не работи филтрацията. Това нормално ли е?
https://softuni.bg/trainings/resources/officedocument/52733/functional-programming-exercise-csharp-advanced-september-2020/3007
https://pastebin.com/navD6gt3