Forum Clubic

Prb de doublons dans un listview - VB.net listview HEEEEEEEEEEEELP

salut.
j’ai un listview contenant 2 colonnes : code et nom (les 2 de type string)
lors de l’affichage, j’ai des doublons dans le listview.
comment faire pour supprimer ces doublons. j’ai essayé avec ce code mais ça marche pas :
'------------------------------------------------
’ Supprimer les doublons de listview1
'------------------------------------------------
Dim tmp As String
Dim k, g As Integer
k = 0
Do While k <= ListView2.Items.Count - 1
tmp = ListView2.Items.Item(k).ToString
For g = k + 1 To ListView.Items.Count - 1
If tmp.Equals(ListView2.Items.Item(g)) Then
ListView2.Items.RemoveAt(g)
k -= 1
Exit For
End If
Next
k += 1
Loop
'------------------------------------------------

listView.removedoublons()

nan je rigole :slight_smile:

   
 Sub delete(ByVal listView1 As ListView)
        Dim i As Integer = 0
        Dim j As Integer
        Dim lvi2 As ListViewItem
        For Each lvi1 As ListViewItem In listView1.Items
            j = i + 1
            Do While j < listView1.Items.Count() - 1
                lvi2 = listView1.Items.Item(j)
                If lvi1.ToString().Equals(lvi2.ToString()) Then
                    listView1.Items.Remove(lvi2)
                Else
                    j = j + 1
                End If
            Loop
            i = i + 1
        Next
    End Sub

A mon avis le problème vient du fait que tu enlève à un indice via removeAt(), et lorsque tu enleve un élement, tous les indices sont décalés.

Merci pour le code ke tu m’as envoyé.
en fait, il y avait juste une petite chose à rectifier dans mon code, avec cette modification ça a marché :

Dim tmp As String
Dim k, g As Integer
k = 0
Do While k <= ListView2.Items.Count - 1
tmp = ListView2.Items(k).SubItems(0).Text <= là
For g = k + 1 To ListView.Items.Count - 1
If tmp.Equals(ListView2.Items(g).SubItems(0).Text) Then <= là
ListView2.Items.RemoveAt(g)
k -= 1
Exit For
End If
Next
k += 1
Loop

de tte façon, merci pour ton aide, j’en suis vraiment reconnaissante.
je garderai ton code pour une prochaine utilisation. :super: