调整二维数组大小

4

如何调整二维数组的大小而不影响其值?


“affecting its value” 是什么意思? - Lasse V. Karlsen
我的意思是存储在数组中的值不会丢失。 - Mark
1
顺便提一下,注意到“调整大小”数组并不是真正可能的,总是涉及创建一个新数组并复制数据。避免过多地这样做... - Marc Gravell
3个回答

7

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

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


从来没有意识到redim仅限于最后一个维度。猜测Array.Copy也会受到关注。 - invert

4

正如Adam所说,您无法动态调整2D数组的大小。 您可以像这样轻松地将现有数组复制到更大的数组中:

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

-1

如果你使用的是 .net 2 框架或更高版本,可以尝试使用 array.resize

例如:

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

1
从文档中可以看出,数组参数是“要调整大小的一维、以零为基础的数组”。但是 OP 明确询问了关于二维数组的问题。 - Broots Waymb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接