2016-01-16 133 views
1

我有我想在二维复制(如锯齿)数组 这是我的代码:快速复制阵列VB6.0

Dim cB(1000000) As Double 
Dim buffer(50, 1000000) As Double 

For I = 1 To 1000000 
    cB(I) = CInt(Int((50 * Rnd()) + 1)) 
Next 

我可以使用的复制认证机构缓冲。像这样的代码:

For I = 1 To 10 

    For j = 1 To 1000000 
     buffer(I, j) = cb(j) 
    Next 

Next 

但我想知道有没有更快的方法来做到这一点?在vb.net或C#中我可以使用List。 在vb6.0中有这样的事吗?

谢谢。

回答

1

也许根本不复制数组?

Function AccessMyArray(arr, i, j) 
    ' TODO: add range check using LBound()/UBound() 
    AccessMyArray = arr(i * 1024 + j) 
End Function 
+0

这不是我的问题。我希望复制数组尽可能快地以多维方式进行。 –

+0

我明白了,但为什么你想改变数组结构如此平凡而没有任何实际需要?你的问题似乎集中在将一维数组转换为一个统一的嵌套数组(即10240个项目中的一行变成1024个项目的10个行,这基本上是一个无操作)。 – Tomalak

1

在VB6中没有通用的List对象,但有一个Dictionary对象,它大致等同于.Net中的通用Dictionary对象。设置对“Microsoft Scripting Runtime”的引用,您会发现它。