Какая коллекция .Net для добавления нескольких объектов одновременно и получения уведомлений? - PullRequest
34 голосов
/ 11 сентября 2008

Рассматривал класс System.Collections.ObjectModel ObservableCollection<T>. Это странно, потому что

  • у него есть метод Add, который принимает один элемент. Нет AddRange или эквивалент.
  • аргументы события Notification имеют свойство NewItems, которое представляет собой IList (объектов .. не T)

Здесь мне нужно добавить пакет объектов в коллекцию, и слушатель также получит пакет как часть уведомления. Я что-то упустил с ObservableCollection? Есть другой класс, который соответствует моим спецификациям?

Обновление: не хочу, чтобы мои собственные свернули, насколько это возможно. Я должен был бы встроить добавить / удалить / изменить и т.д .. много всего.


Похожие Q:
https://stackoverflow.com/questions/670577/observablecollection-doesnt-support-addrange-method-so-i-get-notified-for-each

Ответы [ 11 ]

0 голосов
/ 11 сентября 2008

Метод расширения Человек на помощь!

    /// <summary>
    /// Adds all given items to the collection
    /// </summary>
    /// <param name="collection">The collection.</param>
    /// <param name="toAdd">Objects to add.</param>
    public static void AddAll<T>(this IList<T> collection, params T[] toAdd)
    {
        foreach (var o in toAdd)
            collection.Add(o);
    }
...