Я вижу, почему это не разрешено:
foreach (Thing t in myCollection) {
if (shouldDelete(t) {
myCollection.Delete(t);
}
}
но как насчет этого?
foreach (Thing t in myCollection.Where(o=>shouldDelete(o)) {
myCollection.Delete(t);
}
Я не понимаю, почему это не удается. Метод "Where()", очевидно, не возвращает исходную коллекцию, поэтому я не перечисляю вокруг исходной коллекции, когда пытаюсь удалить что-то из нее.