2011-01-28 15 views
6

Le persone spesso mi dicono di non usare ArrayList per creare i miei array in VB.NET. Mi piacerebbe sentire opinioni a riguardo, perché non dovrei? Qual è il metodo migliore per creare e manipolare contenuti di array, dimensioni ecc.?Non utilizzare ArrayList!

Grazie.

risposta

7

Utilizzare invece elenchi generici. ArrayList non è stato digitato, ovvero è possibile avere un elenco con stringhe, numeri, +++. Piuttosto si dovrebbe usare un elenco generico come questo:

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

L'liste di classe consente inoltre di espandere la lista al volo, tuttavia, impone anche di battitura che aiuta a scrivere codice più pulito (non si ha a typecast) e il codice che è meno incline a bug.

ArrayList è genialmente parlando solo di List(Of Object).

+0

Grazie per il consiglio: D – Voldemort

1

Perché non è fortemente digitato. Utilizza uno List(Of T) quale T è il tuo tipo.

4

Gli elenchi di array non sono controllati dal tipo, pertanto è necessario eseguire molto boxing/unboxing. Usa invece una collezione .net che supporti generici come List.

Poiché l'elenco non deve rimuovere i propri oggetti, offre prestazioni sorprendentemente migliori rispetto all'arrayist.

+0

Il link qui sopra per boxin/unboxing è rotto, quindi ecco un altro: http://msdn.microsoft. com/it-it/library/yz2be5wk.aspx – Thomas

3

ArrayLists sono meno performante e la memoria-estensivo:

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