Фон:
Я пытаюсь заполнить объект ArrayList
из любого заданного массива значений.
Чтобы заполнить эти объекты, вы можете использовать *Метод 1008 * или метод .AddRange
, однако в любом случае кажется, что для заполнения ArrayList
необходимо выполнить итерацию по массиву.И, очевидно, чтобы использовать .AddRange
, нам нужно использовать объект Queue
.
Код:
Пример метода .Add
:
Sub Test1()
Dim ArrList As Object: Set ArrList = CreateObject("System.Collections.ArrayList")
With ArrList
For Each ArrItem In Array("A", "B", "C")
If Not .contains(ArrItem) Then .Add ArrItem
Next
End With
End Sub
Пример метода .AddRange
:
Sub Test2()
Dim ArrList As Object: Set ArrList = CreateObject("System.Collections.ArrayList")
Dim Q As Object: Set Q = CreateObject("System.Collections.Queue")
With Q
For Each ArrItem In Array("A", "B", "C")
If Not .contains(ArrItem) Then .Enqueue ArrItem
Next
End With
ArrList.AddRange Q
End Sub
Вопрос:
Как видите, мне интересно, какова цель метода .AddRange
, если мы не можем назначить массив напрямую.Нам по-прежнему приходилось итерировать и .Enqueue
их.
Так что можно сделать, чтобы назначить массив сразу?Очевидно, что из-за ошибки (5) выйдет следующее:
ArrList.AddRange Array("A", "B", "C")
Кстати, для раннего связывания добавьте ссылку mscorlib.dll
.