Я программирую на С#. Я пытаюсь удалить элемент из List<>
, но когда я удаляю элемент, я получаю эту ошибку исключения:
Исключение типа «System.InvalidOperationException» возникло в mscorlib.dll, но не было обработано в пользовательском коде.
Дополнительная информация: Коллекция изменена; операция перечисления может не выполняться.
Вот мой код:
foreach (Target t in targetList)
{
if (t.CalculateDistance(t.EndX, t.EndY) <= 5)
{
targetList.Remove(t);
}
}
Я получаю исключение в первой строке. Почему я вижу эту ошибку? или Как я могу это исправить?
for
, который я не рекомендую, вашiterator
, скорее всего, в какой-то момент окажется за пределами допустимого диапазона; создайте второйList
илиArray
для хранения значений, которые вы хотите удалить, затем добавьте каждое значение, которое вы хотите удалить, вList
илиArray
и после завершения выполните итерацию по этимList
илиArray
и удалите их из исходныхList
илиArray
. - person Der Kommissar   schedule 24.04.2015Your iterator will likely end up out-of-range at some point
нет, если вы пойдете назад - person Ňɏssa Pøngjǣrdenlarp   schedule 24.04.2015