重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
来给你写了个函数,拿去用,不谢
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的郑州网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
Function RemoveAt(Of T)(ByVal arr As T(), ByVal index As Integer) As T()
Dim uBound = arr.GetUpperBound(0)
Dim lBound = arr.GetLowerBound(0)
Dim arrLen = uBound - lBound
If index lBound OrElse index uBound Then
Throw New ArgumentOutOfRangeException( _
String.Format("Index must be from {0} to {1}.", lBound, uBound))
Else
Dim outArr(arrLen - 1) As T
Array.Copy(arr, 0, outArr, 0, index)
Array.Copy(arr, index + 1, outArr, index, uBound - index)
Return outArr
End If
End Function
这不是你的错是VB的错,遇到这种情况,需重新定义一个数组,先保存pt的数据,然后将pt清空,再倒回来
删除数组元素很简单,重新声明数组即可,代码如下
Redim [Preserve] 数组名 (下标上界)
这个也可以称为动态数组,这个东西是基础,非常重要。
这个功能就等于说,把原来的数组重新声明,Preserve是可选项,他的意思就代表是否保留数组内容,这是重点,如果你想删除数组中的元素,就不要写Preserve,这个方法的控制性也很好,可以重新声明数组的元素,各个方面都很有用,希望采纳!谢谢!
思路:个人认为,VB里没有特别好的办法,不如直接定义一个大小为2000的数组,用个循环把2500这个数组的数抄过去,抄的过程中,能被5整除的就跳过。例子:
Dim arr,brr(5) As Integer '定义一个长为5的数组,把长为10的数组内奇数抄过来
Dim i, j As Integer
j = 0
arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
For i = 0 To 9
If Not arr(i) Mod 2 = 0 Then '偶数的,不要
brr(j) = arr(i)
j = j + 1
End If
Next i
For i = 0 To 4 '输出结果
Print brr(i)
Next i
Erase 数组名
要注意,如果是固定数组,则所有元素的值被初始化(字符型为空字符串,数值型为0),数组的大小是不变的;如果是动态数组,则所有元素被删除,内存空间被回收,要重新ReDim才能使用。Private Sub Form_Click()Dim a(9) As Integer, i As IntegerRandomizePrint "清除前:"For i = 0 To 9 a(i) = Rnd * 100 Print a(i);NextPrintErase aPrint "清除后"For i = 0 To 9 Print a(i);NextPrintEnd Sub