В моем проекте требуется множество динамически изменяемых массивов для разных объектов. Массив может содержать любое количество объектов, потенциально тысячи, одного класса, но не объектов нескольких классов.
В основном я буду выполнять итерацию через массивы, поэтому использование набора с ключом не является идеальным. Я думаю, у меня есть два варианта:
Первый вариант заключается в разработке класса "List" для каждого типа объекта, методах добавления объектов (и расширения массива), получения индексов First и Last и подсчета объектов и получения объекта по индексу ( последний 4 будет включать обработку ошибок, если массив пуст).
Второй вариант - создать единый класс List с теми же методами, используя тип данных Variant. Очевидно, это намного меньше работы, но меня беспокоит скорость. Насколько медленнее использовать варианты, чем типизированные объекты? Обратите внимание, что я всегда буду отличать объекты варианта в массиве непосредственно к типизированной переменной при поиске, a la:
Dim myObject As MyClass
Set myObject = variantList.Get(i)
Повышает ли скорость литье, или vba все еще должен выполнять все проверки типов, связанные с вариантами?
Кроме того, будет ли этот второй вариант быстрее, чем использование коллекции без ключа? Я читал, что Итерация коллекции медленная, что они предназначены для поиска. Это относится к коллекциям, не связанным с ключами, или только к коллекциям с отображением ключевых значений?
Спасибо всем, кто может предложить советы.