如何遍历经典ASP中的集合?
时间:2020-03-05 18:37:44 来源:igfitidea点击:
我希望能够做到:
For Each thing In things End For
经典ASP不是.NET!
解决方案
回答
无论什么,都需要在VBScript之外编写。
在VB6中,我们可以编写一个Custom Collection类,然后需要编译为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
参见www.w3schools.com。
如果要关联键和值,请使用字典对象:
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
回答
我们将获得的最接近的是使用字典(如Pacifika所述)
Dim objDictionary Set objDictionary = CreateObject("Scripting.Dictionary") objDictionary.CompareMode = vbTextCompare 'makes the keys case insensitive' objDictionary.Add "Name", "Scott" objDictionary.Add "Age", "20"
但是我像集合一样浏览字典
For Each Entry In objDictionary Response.write objDictionary(Entry) & "<br />" Next
我们可以用这种方法遍历整个字典,写出看起来像这样的值:
Scott 20
我们也可以这样做
For Each Entry In objDictionary Response.write Entry & ": " & objDictionary(Entry) & "<br />" Next
哪个会产生
Name: Scott Age: 20
回答
正如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