Questa funzione VB.net 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
