2010-04-16 85 views
3

如何在不影响其值的情况下调整二维阵列的大小?调整二维阵列的大小

+0

你所说的 “影响它的价值” 是什么意思? – 2010-04-16 08:51:49

+0

我的意思是数组中的值存储不会丢失。 – Mark 2010-04-16 10:05:06

+1

作为一个方面说明,请注意“调整大小”数组并不是真的可行,并且总是涉及创建一个新数组并复制数据。避免做太多... – 2010-04-17 21:26:28

回答

6

使用ReDimPreserve修饰符。 VB.NET将确保原始值不受影响。没有阅读文档的权利。ReDim Preserve只会允许您更改数组最后一个维度的长度。

您需要分配一个新的数组(具有正确的大小)并手动将元素从第一个数组复制到第二个数组。

+0

从来没有意识到redim仅限于最后的维度,呃。猜Array.Copy也会得到一些关注。 – invert 2010-04-16 09:24:46

3

正如亚当所说,你不能动态调整二维数组的大小。您可以轻松地将现有阵列复制到一个更大的像这样:使用array.resize

Dim smaller(1, 1) As Byte 
Dim bigger(2, 2) As Byte 
Array.Copy(smaller, bigger, smaller.length) 
-1

尝试,如果你是在.NET 2框架或以上。

例如:

Dim MyArray() as string 
Array.Resize(myarray,12) 
+0

从文档中,数组参数是“一维,从零开始调整大小的数组”。 OP明确询问二维数组。 – 2017-03-16 20:18:30