【问题标题】:Resizing a two dimensional Array调整二维数组的大小
【发布时间】:2011-02-08 17:59:46
【问题描述】:

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

【问题讨论】:

  • “影响其价值”是什么意思?
  • 我的意思是存储在数组中的值不会丢失。
  • 附带说明,请注意“调整大小”数组实际上是不可能的,并且总是涉及创建新数组和复制数据。避免做太多...

标签: vb.net arrays resize


【解决方案1】:

ReDimPreserve 修饰符一起使用。 VB.NET 将确保原始值未被触及。 没有正确阅读文档。 ReDim Preserve 只允许您更改数组最后一维的长度。

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

【讨论】:

  • 从未意识到 redim 仅限于最后一个维度,呃。猜猜 Array.Copy 也会得到一些关注。
【解决方案2】:

正如亚当所说,您不能动态调整二维数组的大小。您可以轻松地将现有数组复制到更大的数组中,如下所示:

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

【讨论】:

    【解决方案3】:

    如果您使用 .net 2 框架或更高版本,请尝试使用 array.resize

    例如:

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

    【讨论】:

    • 从文档中,数组参数是“要调整大小的一维、从零开始的数组”。 OP 明确询问了二维数组。
    猜你喜欢
    • 2015-02-27
    • 2017-01-05
    • 2018-05-02
    • 1970-01-01
    • 2020-11-15
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多