Выполните итерации через словарь VB6

Я - человек 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 для обнаружения всего, это содержит?

12
задан Dinah 7 May 2010 в 15:45
поделиться

2 ответа

Вот пример итерации, если у вас все еще есть проблема, посмотрите второй цикл, чтобы проверить типы значений в словаре

  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
15
ответ дан 2 December 2019 в 06:08
поделиться

Перечисление над словарем не имеет типа 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 напрямую.

10
ответ дан 2 December 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: