JavascriptProva

venerdì 6 settembre 2013

Eliminare un elemento di un arraylist se individuato. Metodo Clone...

Costruiamo un codice in cui da un array viene eliminata una voce che vi sia contenuta, se digitata in una textbox.
Public Class Form1
    Dim elenco As New ArrayList
    Dim copia As ArrayList

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With elenco
            .Add("gongolo")
            .Add("eolo")
            .Add("dotto")
            .Add("mammolo")
            .Add("pisolo")
            .Add("brontolo")
            .Add("cucciolo")
        End With
        copia = DirectCast(elenco.Clone, ArrayList)
        elenca(ListBox1, elenco)
        elenca(ListBox2, copia)
    End Sub
    Sub elenca(ByRef lista As ListBox, ByVal matrice As ArrayList)
        For Each elemento In matrice
            lista.Items.Add(elemento)
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        If copia.Contains(TextBox1.Text) Then
            copia.Remove(TextBox1.Text)
            ListBox1.Items.Clear()
            ListBox2.Items.Clear()
            elenca(ListBox1, elenco)
            elenca(ListBox2, copia)
        End If

    End Sub
End Class
Ecco. Il metodo Clone() non l'ho capito in pieno. Dovrebbe fare una "copia superficiale" di un array, laddove per copia "superficiale" si intenderebbe solo i riferimenti a eventuali oggetti piuttosto che una copia degli oggetti stessi... Ma se gli elementi non sono oggetti, non ci dovrebbe essere nessuna differenza... Non so. Probabilmente capirò in seguito...

Nessun commento:

Posta un commento