gpt4 book ai didi

vb.net - Visual Basic 中未知长度的数组

转载 作者:行者123 更新时间:2023-12-03 00:18:32 25 4
gpt4 key购买 nike

我有一段用 Visual Basic 编写的代码:

Dim n As Double, i As Integer
n = 4
Dim Ramp_length(1 To 4) As Double
For i = 1 To n
Ramp_length(i) = Cells(13 + i, 5)
'Cells(65 + i, 7) = Ramp_length(i)'
Next i

有没有一种方法可以在不声明具有“固定”长度的数组的情况下重现结果?我最终希望代码读取一列长度未知的数据并将其存储在长度相等或更小的数组中,以便可以更改它。这只是代码的一部分...如果有人可以帮助我那就太好了! :D

谢谢

最佳答案

您可以使用 ReDim Preserve 调整数组大小。如果您只需要查看一次而不是循环使用它,那就可以了。但 ReDim Preserve 非常慢,因为它创建一个全新的数组并将旧值复制到其中。如果需要用未知数量的数据集填充数组,请使用列表。我做了一个小例子:

Dim num_iterations as Integer

' redim solution
Dim dyn_array As Integer()
For i = 0 To num_iterations - 1
ReDim Preserve dyn_array(i)
dyn_array(i) = i
Next

' list solution
Dim list_for_array As New List(Of Integer)
For i = 0 To num_iterations - 1
list_for_array.Add(i)
Next
Dim list_array As Integer() = list_for_array.ToArray

经过 10000 次迭代,ReDim 解决方案的运行时间为 32 毫秒,列表解决方案立即准备就绪(0 毫秒)。 100000 次迭代导致使用 ReDim 需要 5487 毫秒,使用列表需要 1 毫秒。

关于vb.net - Visual Basic 中未知长度的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2068458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com