Pregunta

Quiero ser capaz de hacer:

For Each thing In things
End For

ASP CLÁSICO - NO .NET!

¿Fue útil?

Solución

Sea cual sea su [cosas] se necesita ser escrito fuera de VBScript.

En VB6, usted puede escribir una clase de Colección Personalizada, entonces usted necesitará compilar una DLL de ActiveX y registrar en su servidor web para acceder a ella.

Otros consejos

Algo como esto?

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

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

Ver www.w3schools.com.

Si desea asociar claves y valores el uso de un objeto dictionary lugar:

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

Lo más cercano que vas a conseguir es el uso de un Diccionario (como se ha mencionado por Pacifika)

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

Pero yo bucle a través de mis diccionarios como una colección

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

Puede recorrer la totalidad del diccionario de este modo, la escritura de los valores que tendría este aspecto:

Scott
20

También se puede hacer esto

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

Que se iba a producir

 Name: Scott
 Age: 20

Un método que he usado antes es el uso de una propiedad de la colección que devuelve una matriz, que puede ser iterado.

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

Iterar como:

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

Como Brett dijo, su mejor utilizar un componente de vb para crear colecciones.Diccionario de objetos no son muy utilizados en ASP menos para la necesidad específica de las aplicaciones basadas en.

Ser MUY cuidadosamente sobre el uso de VB Script Objeto de Diccionario!
Acabo de descubrir este "autovivication"cosa, nativo de este objeto: http://en.wikipedia.org/wiki/Autovivification

Así que, cuando usted necesita para comparar valores, NUNCA use un boolen comparación como:
If objDic.Item("varName") <> "" Then...
Esto automáticamente agregar la clave "varName"para el diccionario (si no existe, con un valor vacío) , para llevar a cabo la evaluación de la expresión booleana.

Si es necesario, use en su lugar If objDic.Exists("varName").

Acabo de pasar un par de días golpeando las paredes, con este Mcrosoft "característica"...
vbscript-diccionario-objeto-crear-una-clave-que-que nunca existió-pero-presente-en-otro-objeto

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top