Iterate through a VB6 Dictionary

前端 未结 2 1672
误落风尘
误落风尘 2020-12-16 16:56

I\'m a non-VB6 person who had the misfortune of inheriting a buggy legacy VB6/Classic ASP project. There\'s a section where a lot of entries are put into a Dictionary<

相关标签:
2条回答
  • 2020-12-16 17:19

    An enumeration over a Dictionary isn't of type Object, you should use Variant instead:

    Dim o As Variant
    Dim sDicTempAggr As String
    sDicTempAggr = ""
    
    For Each o In oParams
        sDicTempAggr = sDicTempAggr & ", " & oParams(o)
    Next
    

    Also within the For Each the Key is returned not the dictionary member hence the oParams(o) for the value, if you change to For Each o In oParams.items you can use oParams directly.

    0 讨论(0)
  • 2020-12-16 17:41

    Here's a sample for iterating, if you still have a problem look at the second loop to inspect the types of the values in the 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
    
    0 讨论(0)
提交回复
热议问题