Не используйте ArrayList! - PullRequest
       5

Не используйте ArrayList!

6 голосов
/ 28 января 2011

Люди часто говорят мне не использовать ArrayList для создания моих массивов в VB.NET.Я хотел бы услышать мнения об этом, почему бы и нет?Каков наилучший метод для создания и управления содержимым массива, размерами и т. Д.

Спасибо.

Ответы [ 4 ]

7 голосов
/ 28 января 2011

Вместо этого используйте общие списки.ArrayList не является типизированным, что означает, что вы можете иметь список со строками, числами, +++.Скорее вы должны использовать общий список, подобный следующему:

Dim list1 As New List(Of String) ' This beeing a list of string

Класс lists также позволяет вам расширять список на лету, однако он также принудительно вводит типизацию, которая помогает писать более чистый код (вы ненужно набрать) и код, который менее подвержен ошибкам.

ArrayList в общем случае говорит просто List(Of Object).

4 голосов
/ 28 января 2011

ArrayLists не проверяются по типу, поэтому вам нужно будет выполнить упаковку / распаковку . Вместо этого используйте коллекцию .net, поддерживающую обобщения, такие как List.

Поскольку List не должен распаковывать ваши объекты, он обладает удивительно лучшей производительностью, чем Arraylist.

3 голосов
/ 07 августа 2013

ArrayLists менее производительны и занимают много памяти:

Dim list1 As New ArrayList
For i As Integer = 1 To 100000000
    list1.Add(i)
Next
' --> OutOfMemoryException after 13.163 seconds, having added 67.108.864 items

Dim list2 As New List(Of Integer)
For i As Integer = 1 To 100000000
    list2.Add(i)
Next
' --> finished after 1.778 seconds, having added all values
1 голос
/ 28 января 2011

Потому что это не сильно напечатано. Используйте List(Of T), который T является вашим типом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...