2012-05-02 53 views
-1

林新創建數組,並有一個問題。假設你正在創建一個數組,並且你不知道將要在數組中出現的項目總數。你如何使用它而不會出現空錯誤。請注意,我知道我可以添加陣列像這樣:在Vb.net中使用數組

Dim myArray("1", "2", "3", "4", "5") as string 

例如說一個用戶正在輸入姓名(或名稱)到一個文本框,我想將它們添加到一個數組。我將如何做到這一點:

這什麼什麼我到目前爲止並即時得到一個空的錯誤:

Dim myArray() as string 

    myArray(0) = "John" 
    myArray(1) = "Jim" 
    myArray(2) = "James" 

回答

4

你所得到的例外因爲你沒有定義數組的長度。您可以將ReDim來定義lenght,是這樣的:

ReDim myArray(3) 

但看來,你不知道數組的長度在編譯時或運行時那麼它最好使用列表或ArrayList。一些在下面的行上:

Dim list As New ArrayList 
    list.Add("One") 
    list.Add("Two") 
    list.Add("Three") 
2

你得到你的第二個代碼示例崩潰,因爲一個定義的數組沒有尺寸沒有把價值放在()之內。要在定義數組後定義大小,請使用ReDim

在.NET中,最好使用List(of T)而不是Array,除非您確實必須使用數組。這樣你就不必擔心邊界,列表會根據需要增長。

如果你真的需要一個數組,並在.NET 3.5,那麼你可以使用ToArray()

+0

不回答爲什麼OP得到異常的問題。然後,你可以建議一個解決方法。 – Marlon

0

像davisoa說,你可以使用泛型列表類:

Dim list as new List(of string) 
list.Add("John") 
list.Add("Jim") 
list.Add("James") 

Console.WriteLine(list(2)) 
+0

除了我給他一個例子的用法。 – akatakritos