Per quanto ne so, la raccolta VBA è implementata come lista concatenata (utilizzata dagli indici Integer e For Each ... Next) e da una tabella hash (utilizzata dalle chiavi). E come ha detto Raven, non puoi avere più oggetti con la stessa chiave.
Modificato:
@MarkJ: avrei dato il mio citare per questo: Hardcore Visual Basic 2nd Ed. da Bruce McKinney, pubblicato da Microsoft Press 1997 ISBN 1-57231-422-2
Citazioni:
Pagina 191 - The Class Collection
"Per dirla semplicemente, la classe Collection è un souped- la versione C++ della classe CList [...]. Infatti, se si migliora la CList per essere una lista doppiamente collegata e gli si aggiungono alcune altre funzionalità (e magari si usa una tabella hash per cercare le chiavi stringa), si avere una classe di raccolta molto simile a quella fornita con Visual Basic. "
Pagina 197 - Prestazioni
"E, come un dato di fatto, mi è stato detto dagli sviluppatori Visual Basic che le collezioni sono doppiamente liste collegate (con funzionalità aggiuntive per sostenere l'indicizzazione)."
Ora, McKinney era più un giornalista che un programmatore e non uno sviluppatore. Tuttavia, ha lavorato per Microsoft e ha contatti nei team VB e VBA. La sua spiegazione funziona per me.
Per inciso, la ragione dell'elenco doppiamente collegato è di rendere efficiente l'inserimento di elementi sia all'inizio che alla fine della raccolta.
fonte
2010-03-30 23:55:06
È possibile ** non ** avere più elementi con la stessa chiave in una raccolta VB6. – raven
Hai provato questo? Lo proverò domani ... Pensavo che aggiungere la stessa chiave non fosse un problema. –
L'aggiunta di più elementi con il tasto NO è OK, ma i tasti sono maiuscole e minuscole (indipendentemente dalla dichiarazione di Option Compare). –