如何检查列表中的ID唯一性?

时间:2018-12-01 21:01:13

标签: c# oop

我有PersonPersonList班。如果有人尝试添加具有相同ID的人,则应抛出异常。我尝试覆盖Equals()方法,但未检查子列表中的ID。

例如:

Person father = new Person(id: 1);
father.Children.Add(new Person(id: 1));'

这应该引发异常,因为ID为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);
       }
    }

0 个答案:

没有答案