删除数组元素只能用于动态数组,否则元素只能清零(整型)或清空(字符)
创新互联建站专注于大兴企业网站建设,响应式网站,购物商城网站建设。大兴网站建设公司,为大兴等地区提供建站服务。全流程按需网站策划,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
如数组a
清0 a(0)=0
清空 a(0)=""
动态数组清空:erase a
(1)如果ComboBox中的不是通过数据绑定得到的,用ComboBox.Items.Clear 方法 从 ComboBox 中移除所有项。
'清除所有项
ComboBox1.Items.Clear()
'清除ComboBox1显示
ComboBox1.ResetText()
(1)如果ComboBox中的是通过数据绑定得到的,在用ComboBox.Items.Clear 方法 从 ComboBox 中移除所有项之前,先断开绑定的数据源。
'断开数据源
ComboBox1.DataSource = Nothing
'清除所有项
ComboBox1.Items.Clear()
'清除ComboBox1显示
ComboBox1.ResetText()
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
来给你写了个函数,拿去用,不谢
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里没有特别好的办法,不如直接定义一个大小为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