Jay,
It is read-only just to prevent you for making mistakes.
*e* (in your example) is nothing more than a local variable. You may change
its value, but it won't affect the reference kept in the collection. Having
it read only let the compiler emit an error if this happens.
e.SomeProp = ...; at the other hand is correct code. However whether it is
going to chanage the object in the collection depends on what is the type of
the collection (array or non-typed collection) and what is the type of the
item (reference or value type).
--
HTH
Stoitcho Goutsev (100) [C# MVP]
"Jay" <j@h.com> wrote in message news:a8LSc.10$xs.0@okepread02...
When doing a foreach statement like the following why is the variable
read-only?
foreach (e in theArray)
What if I have an array of objects and I need to create a new instance of
the object. If the e is read-only then I have to use a for statement to
accomplish this.