VB.NET Filtering ListItems problema

Eu estou tentando filtrar um ListBox com base na presença de uma seqüência de caracteres. Basicamente, se houver um ListItem que não contenha a string, então eu quero remover todos os ListItems que contêm a string. Aqui está o que eu tentei:

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

O que aparentemente é um não-não, pois gera o erro: A coleção foi modificada; operação de enumeração não pode executar.

Eu também tentei:

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

Que gera uma exceção de índice fora do intervalo.

Qualquer ajuda é muito apreciada.

questionAnswers(5)

yourAnswerToTheQuestion