Procedura: creare un insieme di oggetti (Visual Basic)

Come per qualsiasi altro oggetto, è necessario prima dichiarare una variabile che contenga l'oggetto, quindi creare l'oggetto Collection da assegnare alla variabile.

Per un oggetto Collection è possibile utilizzare la classe Collection o una classe di insiemi di .NET Framework. In particolare, è possibile creare un insieme generico utilizzando una delle classi nello spazio dei nomi System.Collections.Generic. Un insieme generico è utile quando ogni elemento dell'insieme presenta lo stesso tipo di dati. Negli insiemi generici è imposta la tipizzazione forte, che consente di aggiungere soltanto i tipi di dati desiderati. Per ulteriori informazioni, vedere Procedura: definire insiemi indipendenti dai tipi (Visual Basic).

Una volta creato l'oggetto Collection, è possibile aggiungere e rimuovere elementi nonché accedere agli elementi dell'insieme.

Di seguito vengono forniti due esempi relativi alla creazione di insiemi. Ciascun insieme contiene elementi String e associa una chiave String a ciascun elemento. Nelle prime due procedure viene creato un insieme utilizzando la classe di insiemi di Visual Basic. Nelle ultime due procedure viene creato un insieme utilizzando una classe di insiemi generici di .NET Framework.

Per creare un insieme utilizzando la classe di insiemi di Visual Basic

  1. Dichiarare e creare una variabile Collection di Visual Basic, come illustrato nell'esempio seguente.

    Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
    

    L'insieme in sampleVisualBasicColl può accettare elementi di un qualsiasi tipo di dati.

  2. Utilizzare il metodo Add per aggiungere elementi all'insieme. Nell'esempio riportato di seguito vengono creati quattro elementi String, che vengono aggiunti all'insieme. Viene quindi creato un valore String univoco come chiave per ogni nuovo elemento e tale valore viene passato al metodo Add.

    Dim item1, item2, item3, item4 As String
    item1 = "Items"
    item2 = "In"
    item3 = "A"
    item4 = "Collection"
    sampleVisualBasicColl.Add(item1, "firstkey")
    sampleVisualBasicColl.Add(item2, "secondkey")
    sampleVisualBasicColl.Add(item3, "thirdkey")
    sampleVisualBasicColl.Add(item4, "fourthkey")
    

    L'argomento Key è facoltativo in un insieme di Visual Basic.

  3. Per rimuovere un elemento dall'insieme, è possibile utilizzare il metodo Remove, identificando l'elemento in base all'indice di posizione o alla chiave facoltativa. Questa condizione è illustrata nell'esempio che segue.

    ' Remove the first element of the Visual Basic collection.
    sampleVisualBasicColl.Remove(1)
    ' Remove the element with the key "secondkey".
    sampleVisualBasicColl.Remove("secondkey")
    

    Tenere presente che quando un elemento viene rimosso da un Collection di Visual Basic, i valori di indice vengono rinumerati da 1 al valore della proprietà Count.

Per utilizzare For Each...Next per elaborare gli elementi dell'insieme di Visual Basic

  1. Dichiarare una variabile del tipo archiviato nell'insieme. Per l'esempio precedente, dichiarare una variabile di tipo String, come illustrato nell'esempio seguente.

    ' Insert code from the preceding example.
    Dim aString As String
    
  2. Utilizzare un'Istruzione For Each...Next (Visual Basic) per esaminare ciascun elemento dell'insieme. Nell'esempio riportato di seguito viene eseguita la ricerca di una particolare stringa. Se la ricerca ha esito positivo, la stringa viene visualizzata.

    For Each aString in sampleVisualBasicColl
        If aString = "Collection" Then
            MsgBox(aString)
        End If
    Next aString
    

Per creare un insieme utilizzando una classe di insiemi generici

  1. Dichiarare e creare una variabile System.Collections.Generic.Dictionary<TKey, TValue> di .NET Framework, come illustrato nel seguente esempio.

    Dim sampleGenericColl As New System.Collections.Generic.Dictionary(Of String, String)
    

    La variabile sampleGenericColl contiene un insieme indipendente dai tipi che accetta soltanto elementi e chiavi di tipo String.

  2. Utilizzare il metodo Dictionary<TKey, TValue>.Add per aggiungere elementi all'insieme. Nell'esempio riportato di seguito vengono creati quattro elementi String, che vengono aggiunti all'insieme. Viene quindi creato un valore String univoco come chiave per ogni nuovo elemento e tale valore viene passato al metodo Add.

    Dim item1, item2, item3, item4 As String
    item1 = "Items"
    item2 = "In"
    item3 = "A"
    item4 = "Collection"
    sampleGenericColl.Add("firstkey", item1)
    sampleGenericColl.Add("secondkey", item2)
    sampleGenericColl.Add("thirdkey", item3)
    sampleGenericColl.Add("fourthkey", item4)
    

    In questo insieme generico l'argomento Key è obbligatorio.

  3. Per rimuovere un elemento dall'insieme, utilizzare il metodo IDictionary<TKey, TValue>.Remove. È necessario specificare la chiave per identificare l'elemento da rimuovere. Questa condizione è illustrata nell'esempio che segue.

    If Not sampleGenericColl.Remove("thirdkey")
        ' Insert code to handle "thirdkey" not found in collection.
    End If
    

    È possibile utilizzare un'istruzione For Each...Next per scorrere ed elaborare gli elementi di un insieme, come illustrato nella seguente procedura.

Per utilizzare For Each...Next per elaborare gli elementi dell'insieme generico

  1. Dichiarare una variabile del tipo archiviato nell'insieme. Per l'esempio precedente, dichiarare una variabile di tipo String, come illustrato nell'esempio seguente.

    ' Insert code from the preceding example.
    Dim aPair As KeyValuePair(Of String, String)
    
  2. Utilizzare un'Istruzione For Each...Next (Visual Basic) per esaminare ciascun elemento dell'insieme. Nell'esempio riportato di seguito viene eseguita la ricerca di una particolare stringa. Se la ricerca ha esito positivo, la stringa viene visualizzata.

    For Each aPair In sampleGenericColl
        If aPair.Value = "Items" Then
            MsgBox(aPair.Key & " -- " & aPair.Value)
        End If
    Next aPair
    

Vedere anche

Attività

Procedura: creare una matrice di oggetti (Visual Basic)

Riferimenti

Collection

System.Collections

System.Collections.Generic

System.Collections.Specialized