-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

根据我的评论,如果您真的希望对项目进行排序,那么您有两个级别的排序要做。目前尚不清楚您需要排序什么或在哪个级别。

  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()

笔记:

并且每个 ARRAYLIST 都不是字典项,如果是这样,为什么 MSDN 会创建两种不同的对象类型?...参考。还有数组/列表 vs 字典(为什么我们把它们放在第一位)

于 2012-12-24T14:21:21.230 回答