Avevo intenzione di creare una collection personale, così stavo creando una nuova classe, ma sto avendo un problema con la gestione degli oggetti.
La classe si chiama MyCollection

Public Class MyCollection
Private Chiavi As ArrayList
Private Valori As ArrayList

Public Sub New()
Chiavi = New ArrayList()
Valori = New ArrayList()
End Sub

Public Sub Add(ByVal Key As String, ByVal Value As Object)
Try
VerificaChiaveValida(Key)
If VerificaChiaveUnivoca(Key) Then
Chiavi.Add(Key)
Valori.Add(Value )
End If
Catch ex As Exception
Throw ex
End Try
End Sub

............
Nel progetto principale uso l'oggetto MyCollection per una ListaOggetti:

.....
ListaOggetti as MyCollection = new Mycollection
MioOggetto as MiaClasse=new MiaClasse
Chiave as String
.....

ed in un procedura:

.....
ListaOggetti.Add(Chiave, MioOggetto )
MioOggetto.Reset()
.....
Ora, la procedura MioOggetto.Reset() , fa il reset di tutte le informazioni contenute nell'oggetto, fin qui tutto bene.
Ecco il problema...anche nell'oggetto MyCollection, dove ho copiato MioOggetto, perdo tutte le informazioni, ma non ne capisco le ragioni...
Perchè mai il reset di MioOggetto, deve portare al reset anche dell'oggetto contenuto nell'ArrayList "Valori", contenuto nella mia classe?