Best way to remove items from a List(Of ...)

B

BobRoyAce

Lets say that I have two classes, ClassA and ClassB. Further suppose
that ClassA has, as one of it's properties, a List(Of ClassB). For
example...

Public Class ClassA
Private _Property1 as integer
Private _Property2 as List(Of ClassB)

Public Property Property1 as integer
...
End Property

Public Readonly Property Property2 as List(Of ClassB)
...
End Property
End Class

Now, one of the properties in ClassB is IsToBeDeleted. What I want to
be able to do is to delete each of the ClassB items in the List(Of
ClassB) if their IsToBeDeleted property = True.

What is the best way to implement something like this?

I tried the following, but this doesn't work...

For Each oClassB As ClassB In _Property2
If (oAssociatedIso.IsToBeRemoved = True) Then
_AssociatedIsos.Remove(oAssociatedIso)
_ItemsWereRemovedFrom = True
End If
Next

Once an item is removed from the List, the collection has changes and
the Next statement raises an exception as a result.
 
A

Andrew Morton

BobRoyAce said:
I tried the following, but this doesn't work...

For Each oClassB As ClassB In _Property2
If (oAssociatedIso.IsToBeRemoved = True) Then
_AssociatedIsos.Remove(oAssociatedIso)
_ItemsWereRemovedFrom = True
End If
Next

Once an item is removed from the List, the collection has changes and
the Next statement raises an exception as a result.

Try an ordinary For i=someList.Count-1 To 0 Step -1 loop.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top