如何删除数组中的一个元素

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

【讨论】:

以上是关于如何删除数组中的一个元素的主要内容,如果未能解决你的问题,请参考以下文章

java如何删除掉数组中的某个元素??

java中 如何在一个数组中删除里面的元素

js如何删除数组中的第一个元素

如何从 JavaScript 中的数组中删除元素?

C#如何删除数组中的一个元素

如何删除多维数组中的唯一元素?