Supprimer les doublons d'un tableau de chaines

2/5 (2 avis)

Snippet vu 28 617 fois - Téléchargée 9 fois


Contenu du snippet

Public Shared Function RemoveDuplicatedItems(ByVal array As String()) As String()
  If Not (array Is Nothing) AndAlso (array.Length > 0) Then
    Dim arrayTmp As New List(Of String)(array)
    arrayTmp.Sort()
    For i As Integer = arrayTmp.Count - 1 to 0 Step -1
      If arrayTmp(i).CompareTo(arrayTmp(i - 1)) = 0 Then
        arrayTmp.RemoveAt(i)
      End If
    Next
    Return arrayTmp.ToArray()
  Else
    Return Nothing
  End If
End Function

Compatibilité : VB 2005, VB 2008

Disponible dans d'autres langages :

A voir également

Ajouter un commentaire Commentaires
Whismeril Messages postés 18199 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 janvier 2023 624
10 mars 2017 à 22:07
Bonsoir.

Compatible avec Visual Studion 2005, ok (à part le petit bug relévé par Anonyme), mais quand même 2017 vient de sortir.
Quand à 2008, y'avait déjà Linq:
Dim sansDoublon() As String = {"mot", "autreMot", "mot", "coucou", "autreMot"}.Distinct().ToArray()
Anonyme209 Messages postés 679 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020
10 mars 2017 à 14:52
Bonjour,

Cette méthode est incorrecte : lorsque l'index i arrive à 0, une erreur est soulevée sur arrayTmp(i - 1) car i-0 < 0.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.