Ottimizzare un Array di Stringhe

Questa funzione serve per ottimizzare un array di stringhe passato come argomento: elimina gli elementi contenenti valori duplicati e compatta l’array eliminando quelli vuoti o nulli.
Ritorna un nuovo array ottimizzato.

Codice

Private Function OttimizzaArray(ByVal arrayDaOttimizzare() As String) As String()

      Dim i As Integer
      Dim dups As Integer
      Dim ht As New System.Collections.Hashtable(arrayDaOttimizzare.Length * 2)
      For i = 0 To arrayDaOttimizzare.Length - 1
         Dim valore As Object = arrayDaOttimizzare.GetValue(i)
         If ht.Contains(valore) Then
            arrayDaOttimizzare.SetValue(Nothing, i)
            dups += 1
         Else
            ht.Add(valore, Nothing)
            If dups > 0 Then
               arrayDaOttimizzare.SetValue(valore, i - dups)
               arrayDaOttimizzare.SetValue(Nothing, i)
            End If
         End If
      Next
      If dups > 0 Then
         ReDim Preserve arrayDaOttimizzare(UBound(arrayDaOttimizzare) - dups)
      End If
      Return arrayDaOttimizzare

End Function

Lascia un commento

Il tuo indirizzo email non sarĂ  pubblicato. I campi obbligatori sono contrassegnati *