请教关于结构数组中的动态数组与集合相结合的问题

weixin_40315792 2017-09-20 12:41:05
代码如下


Structure data1
name As String
<VBFixedArray(2)> Public abc() As Integer
End Structure

Public Sub ceshi()
Dim abc As data1
Dim Def As New Collection

ReDim abc.acc(1)

abc.name="01"
abc.abc(0)=0
abc.abc(1)=1

Def.Add(abc)

abc.name="23"
abc.abc(0)=2
abc.abc(1)=3

Def.Add(abc)

abc.name="45"
abc.abc(0)=4
abc.abc(1)=5

Def.Add(abc)

Dim xyz As Integer =0

for a=1 to 3
abc=Def.Item(a)
xyz=abc.abc(0)+abc.abc(1)
next
End Sub


我希望的结果xyz=0+1+2+3+4+5=15

但实际写出来发现abc.abc()这个数组是个指针,添加进集合里的也是指针
重赋值数组的时候也会重赋值集合里的值,最后算出的结果是xyz=4+5+4+5+4+5=27

请问有没有方法能让添加到集合里的值不随后续的赋值改变?

我很需要这种以集合代替动态数组的处理方法,因为经常要删除掉中间的某个元素

用集合的话remove就可以了,用动态数组需要专门写个循环把之后的数据提前一位,工作量太大还经常写错
...全文
128 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧