Проблема:
У меня есть следующий код:
foreach(var ItemA in GenericListInstanceB)
{
ItemA.MethodThatCouldRemoveAnyItemInGenericListInstanceB();
}
Очевидно, я получаю ошибку.
Я хочу изменить GenericListInstanceB
на класс, который я создаю, который отслеживает элементы, которые он должен удалить. Затем, когда цикл завершен, он удаляет их все. То же самое с добавлением элементов.
Это нормально, я могу создать класс с внутренним списком, списком элементов для добавления и элементами для удаления. Затем другой метод с именем AddRemovePendingItems
, который фактически «обновляет» список (соответственно удаляет и добавляет элементы). Самое сложное - заставить этот метод вызываться автоматически.
Идеи: Может быть, смотреть, когда GetEnumerator
вызывается? Может быть, делать что-то умное с IDisposable
?
Вопрос: Как узнать, когда завершился цикл for, и мы завершили итерацию по моему классу коллекции, чтобы я мог вызвать свой метод AddRemovePendingItems
?, Особенно если прерывание цикла происходит раньше? *
Примечание Я хочу избежать ненужного копирования, так как я хочу исключить / минимизировать сборку мусора, чтобы я не мог просто перебрать копию / сделать новую копию или что-то в этом роде.