A new feature in C# / .NET 4.0 is that you can change your enumerable in a foreach
without getting the exception. See Paul Jackson's blog entry An Interesting Side-Effect of Concurrency: Removing Items from a Collection While Enumerating for information on this change.
What is the best way to do the following?
foreach(var item in Enumerable)
{
foreach(var item2 in item.Enumerable)
{
item.Add(new item2)
}
}
Usually I use an IList
as a cache/buffer until the end of the foreach
, but is there better way?