-1

以下のコードを書きましたが、ArrayList オブジェクトをディクショナリ項目として割り当てましたが、Sort メソッドを実行しても何も起こりませんでした。

    Set Dic = CreateObject("Scripting.Dictionary")
    Set ArrListChildDetails = CreateObject("System.Collections.ArrayList")

    For Row=3 to ob1.Range.Rows.Couny

      For I=2 to ob1.Range.Columns.Count

      ArrListChildDetails.Add(ob.Cells(Row,I))  


      Next

      Dic(ob.Cells(Row,1))=ArrListChildDetails

    Next

    For Each D in Dic.Keys

       Dic(d).Sort() 'It is not working whereas Dic items are ArrayList object


    Next

ありがとう、

4

1 に答える 1

1

私のコメントによると、本当にアイテムが並べ替えられることを期待している場合は、2つのレベルの並べ替えを行う必要があります。何をどのレベルでソートする必要があるのか​​はまだ明確ではありません。

  1. それぞれの中で並べ替えArrayList

試す:

For Row=3 to ob1.Range.Rows.Couny
    Set ArrListChildDetails = CreateObject("System.Collections.ArrayList")

    For I=2 to ob1.Range.Columns.Count     
       ArrListChildDetails.Add(ob.Cells(Row,I))  
    Next

    arrListChildDetails.Sort()
    Dic(ob.Cells(Row,1))=ArrListChildDetails

    '-- didn't use .Clear() so data & old Capacity will get wiped off as well
    Set arrListChildDetails = Nothing

2.辞書レベルでソートするにdictionaryは、独自のsort()関数を使用してソートします。

Dic(d).SortUserBuilt()

ノート:

そして、各アレイリストは辞書項目ではありません。もしそうなら、MSDNが2つの異なるオブジェクトタイプを作成するのはなぜですか?...参照。そして、配列/リストと辞書(なぜ最初にそれらを持っているのか)

于 2012-12-24T14:21:21.230 に答える