I guess because the framework is keeping track of where you are in the collection, which assumes the collection will not change. If it does, what should foreach do ? you may have removed an item, how do you know if it has been iterated over ? Would you want it to be ? Easier just to say 'don't change this while I am working on it'. I suspect there's a more concrete reason than that, if you look into how it's implimented, but it seems obvious to me that it would create some situations where you could not predict the behaviour of foreach if you could alter the collection.
Christian Graus Driven to the arms of OSX by Vista. "I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )