Я столкнулся с методом изменения списка в цикле foreach
путем преобразования в сам по себе список следующим образом:
foreach (var item in myList.ToList())
{
//add or remove items from myList
}
(Если вы попытаетесь изменить myList
напрямую, будет выдано сообщение об ошибке, поскольку перечислитель в основном блокирует его)
Это работает, потому что это не оригинал myList
, который изменяется. Мой вопрос заключается в том, создает ли этот метод garbage
после завершения цикла (а именно из List
, возвращаемого методом ToList
? Для небольших циклов было бы предпочтительнее использовать for loop
, чтобы избежать мусора?