How do I traverse a collection in classic ASP?

Something like this?

dim cars(2),x
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"

For Each x in cars
  response.write(x & "<br />")
Next

See www.w3schools.com.

If you want to associate keys and values use a dictionary object instead:

Dim objDictionary
Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "Name", "Scott"
objDictionary.Add "Age", "20"
if objDictionary.Exists("Name") then
    ' Do something
else
    ' Do something else 
end if

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.


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