Есть ли версия Списка, который имеет события Add и Remove

Мне нужен .net Collection, который имеет события Add и Remove. Существует ли предварительно сделанная версия, которая имеет это?

Например, я обновил бы некоторый внутренний счетчик, когда пользователь добавляет объект к списку через событие. (Едва ли, что я планирую сделать.)

8
задан Michael Greene 4 January 2010 в 20:53
поделиться

5 ответов

Попробуйте ObservableCollection он поддерживает INotifyCollectionChanged, который поставляет события для каждого аспекта модификации коллекции.

Namespace: System.Collections.ObjectModel

Assembly: WindowsBase.dll

14
ответ дан 5 December 2019 в 07:35
поделиться

ObservableCollection так близко, как вы попадете во фреймворк.

OTOH, это не так уж и сложно. Просто создайте класс, реализующий IList и обертывающий внутренний экземпляр List. Вы можете просто бросать свои события по мере необходимости

.
7
ответ дан 5 December 2019 в 07:35
поделиться

Вы всегда можете сделать приватный список<...> и затем получить доступ методом:

private List<string> listOfStrings = new List<string>;

public void AddToList(string s)
{
    // Do your work
    listOfStrings.Add(s);
}

или вы можете перегрузить его и добавлять события, как вам заблагорассудится.

.
1
ответ дан 5 December 2019 в 07:35
поделиться

Вы также можете написать пользовательскую легковесную обертку, если хотите оптимизировать скорость за счет гибкости.

.
0
ответ дан 5 December 2019 в 07:35
поделиться

Не то, чтобы я знаю, но это было бы довольно легко реализовать, вы можете просто создать свои собственные методы добавления и удаления, или вы можете использовать индексатор. Тогда вы можете делать все, что угодно с точки зрения событий.

.
0
ответ дан 5 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: