如何删除数组中的一个元素
Posted
技术标签:
【中文标题】如何删除数组中的一个元素【英文标题】:How to delete an element of array 【发布时间】:2022-01-16 08:07:19 【问题描述】:我的函数应该删除数组中的一个元素,但是当我运行我的程序时(没有错误),单击按钮什么也不做。
这是我的功能:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim delete As Integer = TextBox2.Text
For i As Integer = 0 To niz.Length - 1
If niz(i) = delete Then
niz(i) = niz(niz.Length - n + 1)
n -= 1
End If
Next
ReDim niz(n - 1)
End Sub
如果你不明白我写的内容,你能发给我一些删除数组中元素的代码吗?
【问题讨论】:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim delete As Integer = TextBox2.Text For i As Integer = 0 To niz.Length - 1 If niz(i) = delete Then niz(i) = niz(niz.Length - n + 1) n -= 1 End If Next ReDim niz(n - 1) End Sub 请为此项目启用Option Strict On
(并将其设置为新项目的默认值)。它会指出一些错误并提供修复供您考虑。
您似乎想使用 List<T> Class 而不是数组。它有多种删除项目的方法。
如果您不对 ReDim 语句使用 PRESERVE,您将丢失所有现有数据。
如所写,您将获取下一个更高的元素,将其复制到已删除的元素上,然后从数组中删除最后一个元素(尽管省略了 Preserve
)。您需要考虑将每个更高的元素向下复制,而不仅仅是下一个更高的元素。
【参考方案1】:
我不清楚“n”是什么。它从来没有被分配。但是,是的,我会这样做:
Dim nizList = niz.ToList
For Each element In nizList
If element = delete Then
nizList.Remove(element)
End If
Next
niz = nizList.ToArray
【讨论】:
以上是关于如何删除数组中的一个元素的主要内容,如果未能解决你的问题,请参考以下文章