Asp classic 如何在经典ASP中遍历集合?

Asp classic 如何在经典ASP中遍历集合?,asp-classic,vbscript,Asp Classic,Vbscript,我希望能够做到: For Each thing In things End For 经典的ASP-不是.NET 无论您的[东西]是什么,都需要在VBScript之外编写 在VB6中,您需要编译为ActiveX DLL,并在Web服务器上注册以访问它。类似这样的内容 dim cars(2),x cars(0)="Volvo" cars(1)="Saab" cars(2)="BMW" For Each x in cars respo

我希望能够做到:

For Each thing In things
End For

经典的ASP-不是.NET

无论您的[东西]是什么,都需要在VBScript之外编写

在VB6中,您需要编译为ActiveX DLL,并在Web服务器上注册以访问它。

类似这样的内容

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

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

你最接近的方法就是使用字典(正如帕西菲卡所提到的)

但我像一个收藏品一样翻阅我的字典

For Each Entry In objDictionary
  Response.write objDictionary(Entry) & "<br />"
Next
你也可以这样做

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

正如Brett所说,最好使用vb组件来创建集合。在ASP中,字典对象不是很常用,除非用于基于特定需求的应用程序

我以前使用过的一种方法是使用集合的一个属性,该属性返回一个可以迭代的数组

Class MyCollection
    Public Property Get Items
        Items = ReturnItemsAsAnArray()
    End Property
    ...
End Class
像这样迭代:

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

使用VB脚本字典对象时要非常小心
只要发现这个“自动生存”“东西,就可以在这个物体上找到:

因此,当您需要比较值时,切勿使用boolen比较,如:
如果objDic.Item(“varName”)”,则

这将自动将键“
varName
”添加到字典中(如果不存在,则为空值),以便对布尔表达式进行求值

如果需要,如果objDic.Exists(“varName”)
则使用

只需花几天时间使用Mcrosoft的“功能”敲打墙壁即可。…

For Each Entry In objDictionary
  Response.write Entry & ": " & objDictionary(Entry) & "<br />"
Next
 Name: Scott
 Age: 20
Class MyCollection
    Public Property Get Items
        Items = ReturnItemsAsAnArray()
    End Property
    ...
End Class
Set things = New MyCollection
For Each thing in things.Items
    ...
Next