2010-05-07 10 views
11

मैं एक गैर-वीबी 6 व्यक्ति हूं जिसकी एक छोटी गाड़ी विरासत वीबी 6/क्लासिक एएसपी परियोजना विरासत में दुर्भाग्य था। एक ऐसा अनुभाग है जहां Dictionary में बहुत सी प्रविष्टियां डाल दी गई हैं और मैं इसमें शामिल सभी देखना चाहता हूं। मैंने कोशिश की इस (oParams एक शब्दकोश है):एक वीबी 6 शब्दकोश के माध्यम से Iterate

Dim o As Object 
Dim sDicTempAggr As String 
sDicTempAggr = "" 
For Each o In oParams 
    sDicTempAggr = sDicTempAggr & ", " & o 
Next 

कौन सा दिखाई:

वस्तु इस संपत्ति या विधि का समर्थन नहीं करता: 438

Option Explicit का उपयोग करना, मैं कैसे पुनरावृति करते एक वीबी 6 Dictionary के माध्यम से इसमें सब कुछ पता लगाने के लिए? For Each कुंजी भीतर

Dim o As Variant 
Dim sDicTempAggr As String 
sDicTempAggr = "" 

For Each o In oParams 
    sDicTempAggr = sDicTempAggr & ", " & oParams(o) 
Next 

भी इसलिए मूल्य के लिए oParams(o) नहीं शब्दकोश सदस्य लौटा दिया जाता है, यदि आप:

उत्तर

12

इधर, बार-बार दोहराना के लिए एक नमूना है अगर आप अभी भी दूसरे पाश में एक समस्या नज़र मूल्यों के प्रकार का निरीक्षण करने के शब्दकोश में है

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 
9

एक शब्दकोश से अधिक एक गणना प्रकार Object की नहीं है, आप के बजाय Variant का उपयोग करना चाहिए Each o In oParams.items के लिए बदलें आप सीधे oParams का उपयोग कर सकते हैं।