2015-07-20 98 views
0

在Javascript中,我們可以執行以下操作來創建二維數組,然後在第一個數組的第一個位置分配一個值。二維數組,僅分配一個維度

var some_array = [[]] 
x[0] = ["a", "b", "c"] 

我已經看到這不能在VB.NET本地完成(或者我可能無法找到如何)。

Dim some_array As String(,) 
some_array(0) = {"a", "b", "c"} 

然後我得到一個錯誤,告訴我沒有指定數組的兩個維度。

有沒有辦法在VB NET中實現這一點?

+1

[在Visual Basic陣列(https://msdn.microsoft.com/en-us/library/wak0wfyt.aspx ) – Plutonix

回答

2

JavaScript沒有一個多維數組。相反,它有一個數組陣列,又名鋸齒狀陣列。在vb.net中,一個二維數組的字符串定義如下:dim mystring(,) as string,而一個鋸齒形的字符串數組定義如下:dim mystring()() as string。使用鋸齒形數組,第一個「行」是一個數組,它的每個單元都包含一個數組,因此可以初始化一個「列」。

關於多維數組和鋸齒形數組之間的區別還有一點,就是鋸齒形數組可以具有不同長度的「列」,因爲每列都是1d數組。多維數組並非如此,它的所有列必須具有相同的長度。
這也證明了我關於JavaScript的點,因爲下面的代碼行是有效的:

var a =[[1,2],[4,5,6],[1]]; 
+1

vb.net也有,[鏈接供參考](https://msdn.microsoft.com/en-us/library/kfky451c(v = vs.90).aspx)。 – Saragis

+1

是的,我已經檢查過它並更新了我的答案。 –

1

如何使用Generic.List而不是數組?

Dim some_array As New List(Of List(Of String)) 
some_array.Add({"a", "b", "c"}.ToList()) 

否則,你就需要提供至少一名維...

Dim some_array(3)() As String 
some_array(0) = {"a", "b", "c"}