Microsoft KB Archive/905718

= BUG: An InvalidOperationException exception may not be returned when you modify a collection in the .NET Framework =

Article ID: 905718

Article Last Modified on 12/3/2007

-

APPLIES TO


 * Microsoft .NET Framework 2.0
 * Microsoft .NET Framework 1.1
 * Microsoft .NET Framework 1.0

-





SYMPTOMS
In the Microsoft .NET Framework, when you modify a collection by using a statement such as the foreach statement, an InvalidOperationException exception may not be returned as you expect. Instead, a null value may be returned.

Note The enumerator is still irrecoverably invalidated when this problem occurs.



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
An enumerator remains valid as long as the collection remains unchanged. Changes to a collection that invalidate the enumerator are adding elements, modifying elements, and deleting elements. After you invalidate the enumerator, the next call to the MoveNext method or to the Reset method should return an InvalidOperationException exception. However, the next call to the MoveNext method or to the Reset method does not always return an InvalidOperationException exception.

If you modify the collection between calling the MoveNext method and calling the Get function on the Current property, the Get function returns the element that the Current property is set to. The Get function returns this Current property even if the enumerator is already invalidated.

