Я - человек non-VB6, у которого была неудача наследования ошибочного проекта VB6/Classic ASP прежней версии. Существует раздел, куда много записей помещается в a Dictionary
и я хочу видеть все, что это содержит. Я попробовал это (oParams
Словарь):
Dim o As Object
Dim sDicTempAggr As String
sDicTempAggr = ""
For Each o In oParams
sDicTempAggr = sDicTempAggr & ", " & o
Next
Который возвратился:
Объект не поддерживает это свойство или метод: 438
Используя Option Explicit
, как я выполняю итерации через VB6 Dictionary
для обнаружения всего, это содержит?
Вот пример итерации, если у вас все еще есть проблема, посмотрите второй цикл, чтобы проверить типы значений в словаре
Dim oParams As New Dictionary
oParams.Add 1, "This"
oParams.Add 2, "That"
oParams.Add 3, "The other"
Dim key As Variant
Dim sDicTempAggr As String
Dim sTypes As String
For Each key In oParams.Keys
sDicTempAggr = sDicTempAggr & IIf(sDicTempAggr <> "", ",", "") & oParams(key)
Next key
For Each key In oParams.Keys
sTypes = sTypes & IIf(sTypes <> "", ",", "") & TypeName(oParams(key))
Next key
Перечисление над словарем не имеет типа Object
, вместо него следует использовать Variant
:
Dim o As Variant
Dim sDicTempAggr As String
sDicTempAggr = ""
For Each o In oParams
sDicTempAggr = sDicTempAggr & ", " & oParams(o)
Next
Также в For Each
возвращается ключ, а не член словаря, отсюда oParams(o)
для значения, если изменить на For Each o In oParams. items
вы можете использовать oParams
напрямую.