public new int RemoveAll(Predicate <Contact> match)
        {
            int ret = base.RemoveAll(match);

            ContactsRemoved?.Invoke(FindAll(match));
            return(ret);
        }
        public new bool Remove(Contact item)
        {
            bool ret = base.Remove(item);

            if (ret)
            {
                ContactsRemoved?.Invoke(new Contact[] { item });
                return(ret);
            }

            return(ret);
        }
 public new void RemoveRange(int index, int count)
 {
     base.RemoveRange(index, count);
     ContactsRemoved?.Invoke(GetRange(index, count));
 }
 public new void RemoveAt(int index)
 {
     base.RemoveAt(index);
     ContactsRemoved?.Invoke(new Contact[] { this[index] });
 }