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