Здравствуйте, 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]);
}
}