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