[C# -OOP Advanced] Exercises: Interfaces Как е по-добре да подам сет от елементи?
Въпросът ми е за Exercises: Interfaces, Problem 8. Military Elite.
Там: LeutenantGeneral – holds a set of Privates under his command
Генерала ще има: public HashSet<int> PrivatesIdUnderCommand { get; set; }
Информацията, която се подава в инпута е във вида: LeutenantGeneral: “LeutenantGeneral <id> <firstName> <lastName> <salary> <private1Id> <private2Id> … <privateNId>” where privateXId will always be an Id of a private already received through the input.
Въпросът ми е как е най-добре да се подаде този сет от номера на редници към генерала?
Вариант първи в майн метода преобразувам редицата от стрингове в HashSet<int> и така го подавам в конструктора на генерала.
Вариант втори подавам стрингчетата на конструктора и вътре в него се преобразуват в HashSet<int> ? Това не знам как ще стане, като броят на стринговете не е известен предваретелно и може да е много голям.
Вариант трети подавам стринговете касаещи Idтата на редниците като един стринг на конструктора и вътре в него те се Splitват и се преобразуват в HashSet<int>? Демек в майн метода сплитвам инпута по интервал и после събирам само Idтата в един стринг, който се подава на конструктора на генерала.
Аз пък пазя Privates в LeutenantGeneral в List<Private> - private проперти, като имам публичен метод за добавяне на Private в листа.
По условие пише „privateXId will always be an Id of a private already received through the input“ и съответно разчитайки на това в мейна създавам LeutenantGeneral и по подадените Ид-а намирам съответния Private, който трябва да съществува вече и с публичния метод от LeutenantGeneral го добавям към private листа.
Не знам дали е добра идея или не...
Да, това звучи много по-логично, релацията да е обектна, след като ги имаш като вече създадени обекти.
Моя подход -> добре ли е на 1 място пазя всички privates , и в генерала взимам тая колекция и я филтрирам по idto github