Bagaimana saya melintasi sebuah koleksi classic ASP?

Saya ingin dapat melakukan:

For Each thing In things
End For

CLASSIC ASP - TIDAK .NET!

Sesuatu seperti ini?

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

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

Lihat www.w3schools.com.

Jika anda ingin mengasosiasikan kunci dan nilai-nilai gunakan kamus objek sebagai gantinya:

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
Komentar (0)
Larutan

Apa pun yang anda [hal-hal] yang perlu ditulis di luar VBScript.

Di VB6, anda dapat menulis sebuah Koleksi Kustom kelas, kemudian anda'll perlu untuk mengkompilasi untuk ActiveX DLL dan mendaftar di webserver anda untuk mengaksesnya.

Komentar (0)

Yang paling dekat anda akan mendapatkan adalah dengan menggunakan Kamus (seperti yang disebutkan oleh Pacifika)

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

Tapi aku loop melalui saya seperti koleksi kamus

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

Anda dapat loop melalui seluruh kamus ini cara menuliskan nilai-nilai yang akan terlihat seperti ini:

Scott
20

Anda juga dapat melakukan ini

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

Yang akan menghasilkan

 Name: Scott
 Age: 20
Komentar (0)

Salah satu pendekatan I've digunakan sebelum menggunakan properti dari koleksi yang mengembalikan sebuah array, yang dapat melakukan iterasi atas.

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

Iterate seperti:

Set things = New MyCollection
For Each thing in things.Items
    ...
Next
Komentar (0)

Sebagai Brett mengatakan, lebih baik untuk menggunakan vb komponen untuk membuat koleksi. Kamus benda-benda adalah tidak sangat umum digunakan di ASP kecuali untuk kebutuhan spesifik aplikasi berbasis.

Komentar (0)

Akan SANGAT hati-hati menggunakan VB Script Kamus Objek! Hanya menemukan ini "autovivication" hal, asli pada objek ini: http://en.wikipedia.org/wiki/Autovivification

Jadi, ketika anda perlu untuk membandingkan nilai-nilai, tidak PERNAH menggunakan boolen perbandingan seperti: Jika objDic.Item("varName") <> "" Lalu... Ini akan otomatis tambahkan tombol "namavar" untuk kamus (jika itu doesn't ada, dengan nilai kosong) , dalam rangka untuk melaksanakan mengevaluasi ekspresi boolean.

Jika diperlukan, gunakan bukan Jika objDic.Ada("varName").

Hanya menghabiskan beberapa hari mengetuk dinding, dengan ini Mcrosoft " fitur*"... vbscript-kamus-objek-membuat-a-key-yang-pernah-ada-tapi-hadir-di-lain-objek

Komentar (0)