To use initialization syntax like this:
var contacts = new ContactList
{
{ \"Dan\", \"dan.tao@email.com\" },
{ \"Eric\", \"ceo@google.com\" }
};
<
The reason for this is that it was retrofitted. I agree with you that using a constructor taking a collection would make vastly more sense, but not all of the existing collection classes implemented this and the change should (1) work with all existing collections, (2) not change the existing classes in any way.
It’s a compromise.