Страницы: 1
RSS
Очередной элемент массива словарей заменяет все предыдущие на себя, Each new element of ArrayDictionary replaced all old elements with itself
 
Приветствую!
Столкнулся со странным поведением массива словарей.
Добавление очередного элемента вызывает замещение предыдущих на него же.
Как обойти — показал, но, мне кажется, что заполнение словаря, как элемента массива будет дольше, ведь нужно постоянно обращаться к массиву.
Код
Почему так и как ещё можно побороть?
Судя по тестам, при Set aDic(1) = dic создаётся СВЯЗЬ между элементом массива и этим временным словарём, и, заполняя временный словарь, я сразу заполняю и элемент массива …
Изменено: Jack Famous - 27.04.2024 14:54:28
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Так будет работать правильно.
Код
Private Sub Fill(dic As Dictionary, sPref$)
    'dic.RemoveAll
    Set dic = New Dictionary
В Bad варианте ты передаешь объект "по ссылке", вот он потом и изменяется.
Вроде так.
 
Цитата
МатросНаЗебре: Так будет работать правильно.
благодарю!  :idea:
Сейчас протетстирую скорость 2ух подходов :D
UPD. По скорости — паритет. Тогда я выбираю вариант №2 (без посредников) ☺
Изменено: Jack Famous - 27.04.2024 15:31:42
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх