как конвертировать массив в BindingList - PullRequest
4 голосов
/ 27 февраля 2011

Какой самый простой и быстрый способ преобразовать массив в BindingList?

Ответы [ 4 ]

10 голосов
/ 27 февраля 2011

Используйте конструктор BindingList, который принимает IList<T>.

var binding = new BindingList<MyType>(myArray);
3 голосов
/ 01 апреля 2014

Будьте осторожны при использовании конструктора BindingList (IList ..) с массивом, поскольку IList будет доступен только для чтения.

Поэтому любые попытки добавить / удалить из BindingList приведут к возникновению исключения NotSupportedException, поскольку IList не может обработать эту функциональность, поскольку коллекция доступна только для чтения.Придется преобразовать его в список перед использованием конструктора IList.

Хорошее описание того, почему массивы создаются из IList, можно найти здесь для дополнительного чтения: Почему массив реализует IList?

3 голосов
/ 27 февраля 2011

Вы ищете конструктор :

var bl = new BindingList<YourClass>(arr);
1 голос
/ 27 февраля 2011

вы можете попробовать цикл foreach:

    public void AppenFromArray(T[] aSource)
    {
        if (aSource == null) { return; }

        foreach (T el in aSource)
        {
            this.Add(el);
        }
    }
...