У меня есть список, который передается в цикл foreach, который удаляет 0 или более элементов из списка. Исходя из условий, возможно, что список будет полностью опустошен, что приведет к ошибке нулевой ссылки. Каков наилучший способ справиться с такой ситуацией?объект, опустошенный в цикле foreach
foreach (Item i in items)
{
if (i.property == condition)
{
items.Remove(i);
}
}
Вы не можете изменить последовательность, вы перечисляете. Как вам удалось полностью удалить список предметов? –
Я не могу придумать ни одного языка, который я знаю, который работает правильно, когда вы пытаетесь удалить элементы из чего-то, что вы повторяете. Существует много способов сделать это, начиная с 'items.RemoveAll', до клонирования списка, итерации по одному и удаления из другого, для хранения индексов и удаления элементов после цикла. – Andrew