Это не ответ на вопрос, но я подумал, что хотел бы предложить облегчить разработку кода.
Добавить новый метод Add
в класс PersonCollection
следующим образом:
public class PersonCollection : List<Person>, IXmlSerializable
{
...
public void Add(string firstName, int age)
{
this.Add(new Person(firstName, age));
}
...
}
Затем, выполнив это, вы можете упростить синтаксис инициализатора коллекции до:
var people = new PersonCollection
{
{ "Sue", 17 },
{ "Joe", 21 }
};
people.FavoritePerson = "Sue";