Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 261 fois - Téléchargée 20 fois
dim i as integer dim j as integer For i = 0 To UBound(Tableau()) If Tableau(i) = LaValeurASupprimmer Then if UBound(Tableau())>1 and i<UBound(Tableau()) then For j = i To UBound(Tableau())-1 Tableau(j) = Tableau(j + 1) Next end if ReDim Preserve Tableau(UBound(Tableau()) - 1) Exit For End If Next i
18 août 2010 à 05:52
18 août 2010 à 08:52
18 août 2010 à 13:18
Au risque de poser une question stupide (ça ne serait pas la première fois ^^),
en quoi ce code est-il optimisé (c'est une vraie question) ?
Cordialement !
18 août 2010 à 15:03
18 août 2010 à 18:34
Personnellement j'utilise une autre méthode, d'ailleurs je ne sais pas trop ce qu'elle vaut, si j'ai le temps je me ferais un petit benchmark mais je la poste ici des fois que...
Sub Remove(Of T)(ByRef source As T(), ByVal toDelete As T)
If source Is Nothing Then Exit Sub
Dim index = Array.IndexOf(Of T)(source, toDelete)
If index = -1 Then Exit Sub
Dim temp(source.Length - 2) As T
Array.ConstrainedCopy(source, 0, temp, 0, index)
Array.ConstrainedCopy(source, index + 1, temp, index, source.Length - index - 1)
source = temp
End Sub
Cordialement !
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.