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



The information in this article 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 "Applies to" 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.

REFERENCES

For more information about how to enumerate a collection, visit the following Microsoft Developer Network (MSDN) Web site:For more information about the IEnumerator interface, visit the following MSDN Web site:

Modification Type:MajorLast Reviewed:11/10/2005
Keywords:kbWindowsForms kbtshoot kbnofix kbbug KB905718 kbAudDeveloper