2011-01-28 50 views
6

人們經常告訴我不要使用ArrayList在VB.NET中創建數組。 我想聽聽有關這方面的意見,爲什麼我不應該?創建和操作數組內容,尺寸等的最佳方法是什麼?不要使用ArrayList!

謝謝。

回答

7

改爲使用通用列表。 ArrayList不是鍵入的,這意味着你可以有一個包含字符串,數字,+++的列表。相反,你應該使用一個通用的清單如下:

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

的列表級,您還可以擴大在飛行名單,但是,它也執行打字,這有助於編寫簡潔的代碼(你不必類型轉換)以及不易出錯的代碼。

ArrayList通常只是一個List(Of Object)

+0

謝謝你的忠告:d – Voldemort 2011-01-28 05:18:49

1

因爲它沒有強類型。使用List(Of T),其中T是您的類型。

4

ArrayLists不是類型檢查,所以你將需要做很多boxing/unboxing。使用.net集合,而不是像List那樣支持泛型。

因爲List不必拆箱,所以它擁有比Arraylist更出色的性能。

+0

上面博欣/拆箱的鏈接斷開,所以這裏的另一個問題:http://msdn.microsoft。 COM/EN-US /庫/ yz2be5wk.aspx – Thomas 2014-10-13 14:36:24

3

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