У меня есть класс Person
и PersonList
.Если кто-то пытается добавить человека с таким же идентификатором, он должен выдать исключение.Я попытался переопределить метод Equals()
, но он не проверяет идентификатор в списке детей.
Например:
Person father = new Person(id: 1);
father.Children.Add(new Person(id: 1));'
Это должно вызвать исключение, поскольку человек с идентификатором 1 уже существует.
class Person {
public int ID { get; private set; }
public PersonList Chilren { get; set; }
public Person(int id) {
Chilren = new PersonList();
this.ID = id;
}
public override bool Equals(object obj) {
return this.ID == (obj as Person).ID;
}
}
class PersonList : List<Person> {
new public void Add(Person person) {
if (Contains(person)) {
throw new Exception("Person already exists!");
}
base.Add(person);
}
}