2015-07-20 70 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"}