Supprimer les doublons d'un tableau de chaines

Soyez le premier à donner votre avis sur cette source.

Snippet vu 26 502 fois - Téléchargée 7 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
14102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 janvier 2020
331
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
673
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
16 septembre 2018

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.