У меня есть функция, которая проверяет список объектов, чтобы увидеть, были ли они нажаты, и соответственно запускает события OnClick. Я считаю, что функция работает правильно, однако у меня проблема:«Коллекция была изменена ...» Проблема
Когда я подключаюсь к одному из событий OnClick и удаляю и вставляю элемент в другую позицию в списке (типичная функция для этой программы) Я получаю ошибку «Коллекция изменена ...».
Я считаю, что я понимаю, что происходит:
- Функции циклов через каждый объект стрельбу OnClick события, где необходимые
- Событие вызывается и объект меняет места в списке на крючковатой функцию
- создается исключение для изменения коллекции во время прохода через него
Мой вопрос, как я могу позволить функции для перебора ll объекты, своевременно запустить необходимые события и предоставить пользователю возможность манипулировать позицией объекта в списке?
Я думаю, что второй вариант звучит лучше всего. Я просто зарегистрирую любые изменения в списке во время обновления, а затем применим их после завершения итерации. –
Обратите внимание, что вам нужно четко указать, что означает «позиция», когда вы делаете несколько изменений - «обмениваете 1 и 2» и «свопите 2 и 3» или «переместите C после A» и «удалите А». Обычно я нахожу, что проще сделать код, который делает правильную вещь, итерации по копии, хотя это может быть ужасно неэффективно. –