Supprimer les doublons d'un tableau de chaines

Soyez le premier à donner votre avis sur cette source.

Snippet vu 26 753 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

Messages postés
14831
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
22 mai 2020
404
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()
Messages postés
676
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
26 mars 2020

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.