VBScript for each
ステートメントを使用してSystem.Collections.ArrayList
オブジェクトを反復処理することができますが、Systems.Collections.SortedList
オブジェクトを反復処理できないのはなぜですか?.Net COMでIEnumerableを理解するInterop
set aList = Server.CreateObject("System.Collections.ArrayList")
aList.Add "a"
aList.Add "b"
aList.Add "c"
for each item in aList
' do something
next
set sList = Server.CreateObject("System.Collections.SortedList")
sList.Add "a", 1
sList.Add "b", 2
sList.Add "c", 3
for each item in sList
' do something
next
ライン
for each item in sList
クラッシュ
オブジェクトはこのプロパティまたはメソッドをサポートしていません*で次を考える
。 ことで
このプロパティ私は、彼らが_NewEnum
プロパティを意味すると仮定します。しかし、なぜ_NewEnum
がArrayList
で公開されていますが、SortedList
では公開されていませんか?どちらのクラスも、mscorelib.dll
を分解して_NewEnum
プロパティ(dispId
--4)の実装を担当するインターフェイスのように見えるIEnumberable
インターフェイスを実装しています。
誰かがこれらの類似したクラスのさまざまなCOM相互運用動作についていくらか光を当てることができれば、私は非常に感謝しています。
SortedList
によって公開されている他のプロパティを使用してコレクションを反復することができます。私はSortedList
を反復する方法を尋ねていません。私はちょうどIEnumrable
がArrayList
の相互運用バージョンで実装されている場合、SortedList
のinteropバージョンで実装されていないように尋ねています。