C# / .NET 4.0中的一个新特性是,您可以在foreach
中更改可枚举值,而不会出现异常。有关此更改的信息,请参阅Paul Jackson的博客条目。
执行以下操作的最佳方法是什么?
foreach(var item in Enumerable)
{
foreach(var item2 in item.Enumerable)
{
item.Add(new item2)
}
}
在foreach
结束之前,我通常会使用IList
作为缓存/缓冲区,但是有没有更好的方法呢?
发布于 2009-04-17 10:56:49
复制枚举,在本例中使用IEnumerable扩展方法,并对其进行枚举。这会将每个内部可枚举中的每个元素的副本添加到该枚举中。
foreach(var item in Enumerable)
{
foreach(var item2 in item.Enumerable.ToList())
{
item.Add(item2)
}
}
发布于 2009-04-28 23:36:16
如上所述,但是使用了代码示例:
foreach(var item in collection.ToArray())
collection.Add(new Item...);
发布于 2009-04-17 10:51:32
在这种情况下,您真的应该使用for()
而不是foreach()
。
https://stackoverflow.com/questions/759966
复制相似问题