Home » Questions » Computers [ Ask a new question ]

How do I traverse a collection in classic ASP?

How do I traverse a collection in classic ASP?

"I want to be able to do:

For Each thing In things
End For

CLASSIC ASP - NOT .NET!"

Asked by: Guest | Views: 267
Total answers/comments: 4
Guest [Entry]

"Whatever your [things] are need to be written outside of VBScript.

In VB6, you can write a Custom Collection class, then you'll need to compile to an ActiveX DLL and register it on your webserver to access it."
Guest [Entry]

"Whatever your [things] are need to be written outside of VBScript.

In VB6, you can write a Custom Collection class, then you'll need to compile to an ActiveX DLL and register it on your webserver to access it."
Guest [Entry]

"The closest you are going to get is using a Dictionary (as mentioned by Pacifika)

Dim objDictionary
Set objDictionary = CreateObject(""Scripting.Dictionary"")
objDictionary.CompareMode = vbTextCompare 'makes the keys case insensitive'
objDictionary.Add ""Name"", ""Scott""
objDictionary.Add ""Age"", ""20""

But I loop through my dictionaries like a collection

For Each Entry In objDictionary
Response.write objDictionary(Entry) & ""<br />""
Next

You can loop through the entire dictionary this way writing out the values which would look like this:

Scott
20

You can also do this

For Each Entry In objDictionary
Response.write Entry & "": "" & objDictionary(Entry) & ""<br />""
Next

Which would produce

Name: Scott
Age: 20"
Guest [Entry]

"One approach I've used before is to use a property of the collection that returns an array, which can be iterated over.

Class MyCollection
Public Property Get Items
Items = ReturnItemsAsAnArray()
End Property
...
End Class

Iterate like:

Set things = New MyCollection
For Each thing in things.Items
...
Next"