Любая коллекция, которая имеет метод Add()
и реализует IEnumerable
, может быть инициализирована таким образом.Подробнее см. Инициализаторы объектов и коллекций для C # .(Отсутствие нового вызова Collection<T>
происходит из-за инициализатора объекта, а возможность добавлять элементы в строке - из-за инициализатора коллекции.)
Компилятор автоматически вызывает метод Add()
дляваш класс с элементами в блоке инициализации коллекции.
В качестве примера приведем очень простой фрагмент кода для демонстрации:
using System;
using System.Collections.ObjectModel;
class Test
{
public Test()
{
this.Collection = new Collection<int>();
}
public Collection<int> Collection { get; private set; }
public static void Main()
{
// Note the use of collection intializers here...
Test test = new Test
{
Collection = { 3, 4, 5 }
};
foreach (var i in test.Collection)
{
Console.WriteLine(i);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}