我能理解为什么这是不被允许的:
foreach (Thing t in myCollection) {
if (shouldDelete(t) {
myCollection.Delete(t);
}
}
但这个怎么样呢?
foreach (Thing t in myCollection.Where(o=>shouldDelete(o)) {
myCollection.Delete(t);
}
我不明白为什么会失败。显然,“Where()”方法并没有返回原始集合,因此当我尝试从中删除某些内容时,我没有枚举原始集合。