2010-04-16 110 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