我有一个数组x大小的对象(1和100之间),我想增加大小为101 ...我调整了数组的大小,并添加对象,但不幸(不令人惊讶的)添加的项目还没有初始化,我是否已经恢复使用do while循环并单独添加元素,但查看其周围的代码扩展使用addrange,我只是想知道如果这是一个整洁的vb做同样的事情的.NET方式添加空白元素到数组
位学习问题,只是在寻找利落的方式做同样的事情
在此先感谢
我有一个数组x大小的对象(1和100之间),我想增加大小为101 ...我调整了数组的大小,并添加对象,但不幸(不令人惊讶的)添加的项目还没有初始化,我是否已经恢复使用do while循环并单独添加元素,但查看其周围的代码扩展使用addrange,我只是想知道如果这是一个整洁的vb做同样的事情的.NET方式添加空白元素到数组
位学习问题,只是在寻找利落的方式做同样的事情
在此先感谢
是的,您需要循环并将新对象添加到新添加的索引中。
请尝试不使用数组,而是使用List。它们更容易使用并提供更多控制。
Dim myList As List(Of Whatever)
myList.Add(New Whatever)
您是否在寻找这....
使用ReDim PRESERVE thatArray(to_the_new_size)
的保护应,嗯,在原来的位置保留原始值。
错误的结束,问题是当你从10个项目到15个项目时,添加新项目(对象数组)还没有用NEW语句初始化 另外VB.Net的方式,以便上述(这是我使用的)是array.resize(数组,新大小),它不会毁坏数组的内容,直到新的尺寸 – spacemonkeys 2010-02-23 14:30:34
我是(那么)不知道你期望完成什么......使用ReDim Preserve(旧)或 .reSize(较新)将肯定会添加到数组的“结尾”,并且这些元素必须是null,因为您无法将新元素传递给构造函数。
但是,你在找什么?一种将新值传递给新元素的构造函数的方式,以便像新元素一样返回旧值。
即使你重载构造函数中,你必须LOOP新值。(至于我可以看到。)
嗨Tobrien,是的,这是问题。我问这个问题的唯一原因是出于兴趣,我用table.rows.addrange(array.convertall(数组,委托函数,将所有元素转换为表行)))将数组转换为表行。然后我不得不在最大计数上添加行,这在第一个陈述之后似乎有点冗长,所以我对这个问题不感兴趣,正如我在问题中已经达到了我想要的那样,只是寻找替代方法要做到这一点 – spacemonkeys 2010-02-24 21:21:23
在过去不好的日子里,你最终会做的是抓取(即重载)构造函数,然后使用Windows USER.dll调用来移动内存或某些类似的内容(即在汇编代码级别)来填充新条目很快。 尽管大多数爱/恨DECLARE功能,他们在需要时提供速度。 tob – tobrien 2010-02-25 14:26:21
同意,但是使用现有的OBI当阵列传递给我,并增加一个Table.Rows集合,所以不能改变方法。你的答案确实给出了如何添加47个实例而不用做循环 – spacemonkeys 2010-02-23 13:05:48
尽管干杯:-) – spacemonkeys 2010-02-23 14:02:19