Удалить внутри foreach с помощью linq, где

Я понимаю, почему это не разрешено :

foreach (Thing t in myCollection) {
   if (shouldDelete(t) {
      myCollection.Delete(t);
   }
}

, но как насчет этого?

foreach (Thing t in myCollection.Where(o=>shouldDelete(o)) {
   myCollection.Delete(t);
}

Я не понимаю, почему это не работает. Очевидно, что метод «Where()» не возвращает исходную коллекцию, поэтому я не перечисляю исходную коллекцию, когда пытаюсь что-то удалить из нее.

12
задан svick 16 April 2012 в 15:47
поделиться