有没有办法在不遍历整个列表的情况下计算 ArrayList 中项目的唯一实例数?这是我的代码,我想在不遍历整个列表的情况下计算 Orange 的实例数 - 我希望有一种方法可以做到这一点?在实践中,实际的 ArrayList 将有数十万个项目。

Private Sub TestArrayList2()

    Dim TestAR As Object
    Dim Count As Integer

    Set TestAR = CreateObject("System.Collections.ArrayList")

    TestAR.Add "Apple"
    TestAR.Add "Orange"
    TestAR.Add "Orange"
    TestAR.Add "Orange"
    TestAR.Add "Pear"

    Count = TestAR.Count

End Sub

最佳答案

我找不到内置的单个函数,但是一旦对数组列表进行排序,就很容易找到您要查找的字符串的第一个 ( .IndexOf ) 和最后一个 ( .lastIndexOf ) 出现:

lookingfor = "Orange"
TestAR.Sort
occurrences = TestAR.lastIndexOf(lookingfor) - TestAR.IndexOf(lookingfor, 0) + 1

关于excel - 计算 ArrayList 中唯一项的数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57970803/

10-11 23:45