Re[2]: Удаление в цикле из коллекции
От: Saruwatari Россия  
Дата: 12.09.07 16:08
Оценка: 1 (1)
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Zirok, Вы писали:


Z>>Как мне при переборе коллекции, при определенных условиях нужно удалить один из элементов, но при этом продолжить цикл


N>Можно создать промежуточную коллекцию ключей, которую и перебирать.


N>
N>        foreach (string key in new List<string>(_coll.Keys))
N>        {
N>            bool result = method(_coll[key]); // Здесь вызываем метод.
N>            if (result == false)
N>                _coll.Remove(key);
N>        }

N>


Так же, если нужно удалять в цикле из коллекции типа List<int>, например, то нужно следовать в обратном порядке. Тогда будет все ОК. Вот так:
List<int> list = new List<int>;
...
for (int i = list.Count - 1; i >= 0; i--)
{
   if (list[i] == 0)
   {
      list.Remove(list[i]);
   }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.