16

私はできるようにしたい:

For Each thing In things
End For

従来の ASP - .NET ではありません!

4

6 に答える 6

13

このようなもの?

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
于 2008-08-11T12:39:46.320 に答える
4

[物事] が何であれ、VBScript の外で記述する必要があります。

VB6 では、カスタム コレクション クラスを記述できます。次に、ActiveX DLL にコンパイルし、Web サーバーに登録してアクセスする必要があります。

于 2008-08-05T13:42:15.593 に答える
2

あなたが得ようとしている最も近いのは、辞書を使用することです(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
于 2008-09-16T19:09:44.407 に答える
1

私が以前に使用した 1 つのアプローチは、配列を返すコレクションのプロパティを使用することです。これは反復処理が可能です。

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

次のように繰り返します。

Set things = New MyCollection
For Each thing in things.Items
    ...
Next
于 2008-11-23T04:40:57.337 に答える
0

ブレットが言ったように、コレクションを作成するためにvbコンポーネントを使用する方が良いです。ディクショナリオブジェクトは、特定のニーズベースのアプリケーションでない限り、ASPではあまり一般的に使用されません。

于 2008-09-23T06:15:19.207 に答える
0

VB スクリプト ディクショナリ オブジェクトの使用には十分注意してください。このオブジェクトにネイティブな、この「自動生存
化」のことを 発見してください: http://en.wikipedia.org/wiki/Autovivification

したがって、値を比較する必要がある場合は、次のようなブール比較を使用しないでください:
If objDic.Item("varName") <> "" Then...
これにより、キー " " が辞書に自動的に追加されますvarName(存在しない場合は空の値で) 、評価を続行します。ブール式。

必要に応じて、代わりに を使用してIf objDic.Exists("varName")ください。

このマイクロソフトの「機能」を使って、壁をノックするだけで数日を過ごすことができます
...

于 2014-05-21T08:43:36.047 に答える