Richiamare un'intera Collection nel campo di un'altra Collection

Da Gambas-it.org - Wikipedia.

E' possibile contenere e richiamare - ossia inserire - una Collection in un'altra Collection, almeno attraverso due modalità.

Mediante il Metodo ".Insert()" della Classe Collection

Mostriamo un esempio pratico con due Collection:

Private collezione_2 As New Collection


Public Sub Form_Open()

 Dim collezione_1 As New Collection
 Dim campo1 As Byte
 Dim campo2 As Integer
 
 campo1 = 144
 campo2 = 100000

 With collezione_1
   .Add(campo1, "chiave1")
   .Add(campo2, "chiave2")
 End With
 
 With collezione_2
   .Add("testo qualsiasi", "chiave_testo")
' Aggiunge l'intera "Collection" 'collezione_1' alla "Collection" 'collezione_2':
   .Insert(collezione_1)
 End With

End


Public Sub Button1_Click()   ' Effettua le verifiche nella console

 Print collezione_2["chiave_testo"]
 Print collezione_2["chiave1"]
 Print collezione_2["chiave2"]

End


Con riferimento di una Collection nel campo di un'altra Collection

Nell'esempio, che segue, abbiamo due Collection.
In un campo della seconda Collection sarà inserito un riferimento alla prima Collection:

Private collezione_2 As New Collection


Public Sub Form_Open()

 Dim collezione_1 As New Collection
 Dim campo1 As Byte
 Dim campo2 As Integer
 
 campo1 = 144
 campo2 = 10000

 With collezione_1
   .Add(campo1, "chiave1")
   .Add(campo2, "chiave2")
 End With
 
 With collezione_2
   .Add("testo qualsiasi", "chiave_testo")
' Aggiunge l'intera Collection 'collezione_1':
   .Add(collezione_1, "chiave_campo_collezione_1")
 End With

End


Public Sub Button1_Click()   ' Effettua le verifiche nella console

 Print collezione_2["chiave_testo"]
 
 Print collezione_2["chiave_campo_collezione_1"]["chiave1"]   ' Scrive il contenuto del 1° campo della Collection 'collezione_1'
 Print collezione_2["chiave_campo_collezione_1"]["chiave2"]   ' Scrive il contenuto del 2° campo della Collection 'collezione_1'

End