Eliminare più elementi da un array
Vai alla navigazione
Vai alla ricerca
Per eliminare più elementi da un vettore, ad esempio sulla base dei valori in ciascuno di essi contenuti, si utilizzarà un ciclo con il Metodo ".Remove()" dell'oggetto vettore, avendo cura nel codice della ovvia riduzione della quantità corrente degli elementi nell'array, al fine di non incorrere in un errore di "Out of Bounds ".
Esempi su valori numerici
Mostriamo un esempio pratico, nel quale saranno eliminati solo gli elementi contenenti numeri dispari:
Public Sub Main()
Dim numeri As Byte[] = [1, 7, 2, 34, 8, 7, 2, 5, 14, 22, 92, 48, 76, 15, 7, 1, 3]
Dim i As Integer
While i < bb.Count
If Not Even(numeri[i]) Then
numeri.Remove(i)
Else
Inc i
Endif
Wend
' Mostra quanto ottenuto dal ciclo precedente:
For Each b As Byte In numeri
Print b
Next
End
In quest'altro esempio, invece, si desidera eliminare gli elementi con valore "zero":
Public Sub Main() Dim bb As Byte[] Dim b As Byte Dim i As Integer bb = [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 9, 0] While i < bb.Count If bb[i] == 0 Then bb.Remove(i) Inc i Wend ' Mostra quanto ottenuto dal ciclo precedente: For Each b In bb Print b Next End
Esempi sulle stringhe di caratteri
Similmente per eliminare degli elementi vuoti in un array di tipo String[]:
Public Sub Main() Dim ss As String[] = ["Aaaaa", Null, "Bbbbb", "", "Ccccc", Null, "Ddddd", "Eeeee", "Fffff", ""] For i As Integer = ss.Max DownTo 0 If ss[i] = Null Then ss.Remove(i) Next ' Mostra quanto ottenuto dal ciclo precedente: For Each s As String In ss Print s Next End
o anche così:
Public Sub Main()
Dim ss As String[] = ["Aaaaa", Null, "Bbbbb", "", "Ccccc", Null, "Ddddd", "Eeeee", "Fffff", ""]
Dim i As Integer
While i < ss.Count
If ss[i] == Null Then ss.Remove(i)
Inc i
Wend
' Mostra quanto ottenuto dal ciclo precedente:
For Each s As String In ss
Print s
Next
End