Looking for c# Keywords? Try Ask4Keywords

C# Language Инициализаторы коллекции в пользовательских классах


пример

Чтобы создать инициализаторы коллекции поддержки класса, он должен реализовать интерфейс IEnumerable и иметь хотя бы один метод Add . Начиная с C # 6, любая коллекция, реализующая IEnumerable может быть дополнена пользовательскими методами Add с использованием методов расширения.

class Program
{
    static void Main()
    {
        var col = new MyCollection {
            "foo",
            { "bar", 3 },
            "baz",
            123.45d,
        };
    }
}

class MyCollection : IEnumerable
{
    private IList list = new ArrayList();

    public void Add(string item)
    {
        list.Add(item)
    }

    public void Add(string item, int count)
    {
        for(int i=0;i< count;i++) {
            list.Add(item);
        }
    }

    public IEnumerator GetEnumerator()
    {
        return list.GetEnumerator();
    }
}

static class MyCollectionExtensions
{
    public static void Add(this MyCollection @this, double value) => 
        @this.Add(value.ToString());
}