Skullman Posted August 10, 2009 Share Posted August 10, 2009 I am trying to iterate a Hash table that I've created (Local $things = ObjCreate("System.Collections.Hashtable")) And of course I've added some elements successfully: ($things.add($test, $test)) When I use things.count and display the value it tells me that it contains 9 elements so adding works and retrieving works also fine when I type in the a key. The documentation says that I can iterate a collection like this by using: FOR $element IN $things <mycode> NEXT But this block is never executed when I am using these statements and and I am wonderwing why. What am I doing wrong here? Link to comment Share on other sites More sharing options...
Authenticity Posted August 10, 2009 Share Posted August 10, 2009 Don't know how to get the enumerable's GetEnumerator() method but you can do it like this: Dim $oObj = ObjCreate('System.Collections.Hashtable') For $i = 1 To 10 $oObj.Add('Key' & $i, 'Value ' & $i) Next For $i = 1 To 10 ConsoleWrite($oObj('Key' & $i) & @CRLF) Next Link to comment Share on other sites More sharing options...
Skullman Posted August 10, 2009 Author Share Posted August 10, 2009 Don't know how to get the enumerable's GetEnumerator() method but you can do it like this: Dim $oObj = ObjCreate('System.Collections.Hashtable') For $i = 1 To 10 $oObj.Add('Key' & $i, 'Value ' & $i) Next For $i = 1 To 10 ConsoleWrite($oObj('Key' & $i) & @CRLF) Next Sure, but when I use this I loose some of the advantages that maps have over arrays. A way to iterate the keys (without restricting them to be built like that) would be much better. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now