O ile mi wiadomo, kolekcja VBA jest zaimplementowana jako lista powiązana (używana przez indeksy Integer i For Each ... Next) i tablica skrótów (używana przez klucze). A jak powiedział Raven, nie można mieć wielu przedmiotów z tym samym kluczem.
Zmieniano:
@MarkJ: Należy Dałem przytoczyć w tym: Hardcore Visual Basic 2nd ed. Bruce McKinney, opublikowanym przez Microsoft Press ISBN 1-57231-422-2 1997
Cytaty:
Page 191 - The Collection Klasa
„Mówiąc prościej, klasa Collection to souped- w górę C + + klasy CList [...] W rzeczywistości, jeśli poprawisz CList, aby był podwójnie połączoną listą i dodasz jej kilka dodatkowych funkcji (i może użyjesz tablicy hash do wyszukiwania kluczy strunowych), mieć klasę kolekcji podobną do tej dostarczonej z Visual Basic. "
Page 197 - Wyniki
„I, jak w rzeczywistości, że pacjent został poinformowany przez programistów Visual Basic, że kolekcje są podwójnie powiązanych list (z dodatkowymi funkcjami do obsługi indeksowania).”
Teraz McKinney był bardziej dziennikarzem niż programistą, a nie programistą. Jednak pracował dla Microsoft i miał kontakty w zespołach VB i VBA. Jego wyjaśnienie działa dla mnie.
Nawiasem mówiąc, powodem podwójnie powiązanej listy jest sprawienie, aby było skuteczne wstawianie przedmiotów zarówno na początku, jak i na końcu kolekcji.
Możesz ** nie ** mieć wielu przedmiotów z tym samym kluczem w kolekcji VB6. – raven
Testowałeś to? Przetestuję to jutro ... Myślałem, że dodanie tego samego klucza nie stanowi problemu. –
Dodanie wielu elementów za pomocą klawisza NIE jest OK, ale klawisze są niewrażliwe na wielkość liter (niezależnie od deklaracji porównania opcji). –