VB.NET Filtering ListItems Problem

Usiłuję filtrować ListBox w oparciu o obecność ciągu. Zasadniczo, jeśli istnieje ListItem, który nie zawiera łańcucha, to chcę usunąć wszystkie elementy ListItem, które zawierają ciąg. Oto, co próbowałem:

Dim Item As ListItem
For Each Item In CtheList.Items
    If Item.Text.IndexOf("W:") = -1 Then
        CtheList.Items.Remove(Item)
     End If
 Next

Który jest najwyraźniej nie-nie, ponieważ generuje błąd: Kolekcja została zmodyfikowana; operacja wyliczania może nie zostać wykonana.

Próbowałem też:

Dim Item As ListItem
For Each Item In CtheList.Items
    If Item.Text.IndexOf("W:") = -1 Then
        Dim i As Integer
        For i = 0 To CtheList.Items.Count - 1
            If CtheList.Items.Item(i).Text.IndexOf("W:") > -1 Then
                CtheList.Items.RemoveAt(i)
            End If
        Next i
    End If
Next

Który generuje wyjątek poza zakresem.

Każda pomoc jest bardzo mile widziana.

questionAnswers(5)

yourAnswerToTheQuestion