C#/ .NET 4.0中的一个新function是,您可以在foreach更改枚举而不会发生exception。 请参阅Paul Jackson的博客条目“并发的有意义的副作用:在枚举中删除项目”以获取有关此更改的信息。 什么是最好的方法来做到以下几点? foreach(var item in Enumerable) { foreach(var item2 in item.Enumerable) { item.Add(new item2) } } 通常我使用IList作为caching/缓冲直到foreach结束,但有没有更好的方法?