I'm creating a data structure that uses nested dictionaries and a list at the lowest level. Here's a sample of my data:
Country, Customer, Purchased US, Alan, Lawnmower US, Alan, Hammer US, Karen, Donkey US, Simon, Mustang MX, Carl, Lawnmower MX, Alan, Donkey ... The data structure I have in mind looks like dictionary --> dictionary --> array -- that is, country --> customer --> purchased. The plan is for there to be a new array per dictionary --> dictionary combination.
However, when I try to update the array, it seems that it is linked to all lower levels of the dictionary --> dictionary structure. That is, after the third row has been processed, have the following situation:
US --> Alan --> [Lawnmower, Hammer, Donkey] US --> Karen --> [Lawnmower, Hammer, Donkey] ... whereas what I'm expecting to see is:
US --> Alan --> [Lawnmower, Hammer] US --> Karen --> [Donkey] Here's the code I'm attempting to use:
i_p = UBound(purchased_array) Redim Preserve purchased_array(i_p + 1) purchased_array(i+p + 1) = item ' new item to add to the array dataset(country)(customer) = purchased_array However, this results in basically the same array being referenced by each lowest level of the dictionary --> dictionary structure.
Any thoughts on what I'm doing wrong?
dictionary --> dictionary --> array, why notdictionary --> dictionary --> collection?collectionwas a keyed data structure? Could I use it instead of an array?.Add(Item, [Key])method, but key is optional. so, you could omit it. In your case it would be much simplier to use collection instead array