The only requirement for an object to be initialized using this syntactic sugar is that the type implements System.Collections.IEnumerable and the Add method. Although we call it a collection initializer, the object does not have to be an collection.

Collection initializers

C# 6 Index Initializers

Collection initializers in custom classes

Using collection initializer inside object initializer

Collection Initializers with Parameter Arrays