It is commonly known that removing items from an
Dim list As New List(Of String)
For Each entry As String In list
Dim tree As New TreeView
Dim root As TreeNode = tree.Nodes.Add("Root")
For Each node As TreeNode In root.Nodes
IEnumerable interface doesn't have anything, either technically or via documentation, to say about modifications. There is nothing contractual that requires a collection that implements the interface to throw an exception if they are modified during enumeration.
It may be that some collections are perfectly capable of continuing enumeration even after modification. I.e. what they enumerate may be "the contents of the collection as it was when enumeration started", or they may offer some other guarantees about items which are added or removed after enumeration starts.