重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
删除数组元素只能用于动态数组,否则元素只能清零(整型)或清空(字符)
成都创新互联从2013年开始,先为连平等服务建站,连平等地企业,进行企业商务咨询服务。为连平企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
如数组a
清0 a(0)=0
清空 a(0)=""
动态数组清空:erase a
Dim a(1 To 10) As Integer
Private Sub Command1_Click()
Dim b As Integer
Randomize
a(1) = Int(Rnd() * 100)
b = Int(Rnd() * 100)
Text1.Text = a(1)
For i = 2 To 10
a(i) = a(i - 1) + b
Text1.Text = Text1.Text " " a(i)
Next i
End Sub
Private Sub Command2_Click()
Text3.Text = ""
For i = 1 To 10
If a(i) = Val(Text2.Text) Then Exit For
Next i
If i = 11 Then
MsgBox "在这10个元素的有序数列中没有要删除的数!"
Exit Sub
Else
For j = i To 9
a(j) = a(j + 1)
Next j
End If
For i = 1 To 9
Text3.Text = Text3.Text a(i) " "
Next i
End Sub
删除数组元素很简单,重新声明数组即可,代码如下
Redim [Preserve] 数组名 (下标上界)
这个也可以称为动态数组,这个东西是基础,非常重要。
这个功能就等于说,把原来的数组重新声明,Preserve是可选项,他的意思就代表是否保留数组内容,这是重点,如果你想删除数组中的元素,就不要写Preserve,这个方法的控制性也很好,可以重新声明数组的元素,各个方面都很有用,希望采纳!谢谢!
来给你写了个函数,拿去用,不谢
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