Доброго всем дня!
Мне нужно сделать словарь, значения в котором будут в виде массивов.
Принцип такой. Через цикл у меня формируется массив данных. Полученный массив нужно внести в словарь по ключу.
Потом, по ключу словаря у мне нужно будет получить доступ к массиву данных.
Проблема в том, что в словарь записывается только ключ, без данных.
Т.е. при вызове arr_coord.Item(key)(i) - у меня получается пустое значение.
Так же я пробовал записывать в значения не только массивы, но и простые данные - все равно, значение по ключу потом пустое.
Что я делаю не так?
Ниже пример кода:
Мне нужно сделать словарь, значения в котором будут в виде массивов.
Принцип такой. Через цикл у меня формируется массив данных. Полученный массив нужно внести в словарь по ключу.
Потом, по ключу словаря у мне нужно будет получить доступ к массиву данных.
Проблема в том, что в словарь записывается только ключ, без данных.
Т.е. при вызове arr_coord.Item(key)(i) - у меня получается пустое значение.
Так же я пробовал записывать в значения не только массивы, но и простые данные - все равно, значение по ключу потом пустое.
Что я делаю не так?
Ниже пример кода:
Код |
---|
Public arr_coord As Dictionary ' словарь, в котором ключ - уникальное значение из обрабатываемого массива _ , значение - координаты уникального значения в обрабатываемом массиве Dim arr_tmp() As String 'массив с координатами уникального значения Dim count& Public Function Arr_init(arr() As String) As String ReDim arr_tmp(1 To UBound(arr())) For i = 1 To UBound(arr()) If arr_coord.Exists(arr(i)) = False Then ' добавляю уникальное значение в словарь count = 1 For i2 = i To UBound(arr()) 'поиск координат уникального значения в массиве If arr(i2) = arr(i) Then ReDim Preserve arr_tmp(1 To count) arr_tmp(count) = i2 count = count + 1 End If Next i2 arr_coord.Add arr(i), arr_tmp() 'добавляю уникальное значение в словарь и массив его координат в обрабатываемом массиве End If Next i End Function |