Каков наилучший способ изменить список в цикле «foreach»? - PullRequest
65 голосов
/ 17 апреля 2009

Новая функция в C # / .NET 4.0 заключается в том, что вы можете изменить свое перечислимое значение в foreach без получения исключения. См. Запись в блоге Пола Джексона Интересный побочный эффект параллелизма: удаление элементов из коллекции при перечислении для получения информации об этом изменении.

Каков наилучший способ сделать следующее?

foreach(var item in Enumerable)
{
    foreach(var item2 in item.Enumerable)
    {
        item.Add(new item2)
    }
}

Обычно я использую IList в качестве кэша / буфера до конца foreach, но есть ли лучший способ?

Ответы [ 11 ]

0 голосов
/ 17 апреля 2009

Вы действительно должны использовать for() вместо foreach() в этом случае.

...