Originariamente inviato da MItaly
L'approccio più pulito è questo:
codice:
    Private Sub VisualizzaRecordCercati(ByVal NumCol As Integer, Tiporicerca As TipoRicerca)
        Dim ripeti As Boolean
        Do
                ripeti=False
                For i As Integer = 0 To Me.ListView1.Items.Count - 1
                    Select Case Tiporicerca
                        Case Is = FRM_ListaArticoli.TipoRicerca.Maggiore
                            If Not ListView1.Items(i).SubItems(NumCol).Text > valoreA Then
                                ListView1.Items(i).Remove()
                                ripeti=True
                            End If
                    End Select
                Next
        Loop While ripeti
    End Sub

...perchè ricominciare sempre da zero;
...se non ricordo male il while valuta la condizione di fine ciclo ad ogni iterazione
per cui credo si possa fare anche una cosa tipo :

codice:
I = 0
While I <= Me.ListView1.Items.Count - 1
    I = I + 1
    Select Case TipoRicerca
        Case Is = FRM_ListaArticoli.TipoRicerca.Maggiore
            If Not ListView1.Items(I-1).SubItems(NumCol).Text > valoreA Then
               ListView1.Items(I-1).Remove()
                I = I - 1
            End If
    End Select
Wend