Vb.net 如何从数组中删除字符串?

Vb.net 如何从数组中删除字符串?,vb.net,Vb.net,在我的代码中,我有一个添加按钮,可以将一个单词添加到数组中最多10次。我如何制作一个删除按钮,以便能够键入当前标签中的单词,并从标签和数组中删除该单词 注意:为了添加到标签,您还必须在文本框中键入一个单词,然后点击添加按钮 Public Class Form1 Dim i, j As Integer Dim s(9) As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Ev

在我的代码中,我有一个添加按钮,可以将一个单词添加到数组中最多10次。我如何制作一个删除按钮,以便能够键入当前标签中的单词,并从标签和数组中删除该单词

注意:为了添加到标签,您还必须在文本框中键入一个单词,然后点击添加按钮

Public Class Form1

Dim i, j As Integer

Dim s(9) As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    'working add button

    Label1.Text = Nothing

    s(j) = TextBox1.Text

    For i = 0 To 9

        Label1.Text &= s(i) & " "
    Next

    j += 1

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    'attempt at a delete button

    s(j) = TextBox1.Text

    For i = 0 To 9

        If deleteWord = s(j) Then

            deleteWord = Nothing

            ReDim Preserve s(s.Length - 1)

            Label1.Text &= s(i) & " "

        End If

    Next

    j += 1

End Sub

结束类解决问题最简单的方法是使用
列表(T)
,因为这样您只需执行以下任一操作:

MyList.Remove(deleteWord)
或:

扩展方法的工作原理如下:它复制自身的一个子部分(指定索引之后的所有内容),并用它替换要删除的项。从技术上讲,它将指定索引后的每个项目向左移动一步<代码>{0,1,2,3}->{0,2,3,}

然后调整数组的大小以删除最后一个未使用的索引

完成后,您可以在循环中使用如下扩展方法:

If deleteWord = s(i) Then
    s.RemoveAt(i) 'Removes the specified item.
End If
或者更简单,没有循环:

Dim Index As Integer = Array.IndexOf(s, deleteWord)
If Index > -1 Then
    s.RemoveAt(Index)
End If

你有没有试过用谷歌搜索?主要示例-最早的热门作品之一;不清楚您认为这段代码应该做什么。但是,如果您希望能够从数组中添加和删除项,则可能应该使用
列表(字符串)
而不是数组。允许在数组不存在的情况下添加和删除项目。@Blackwood MY teahcer希望有一个文本框,您可以在其中键入一个单词,然后单击“添加”,并将其添加到标签中。然后,你可以在标签中键入一个单词,然后点击删除按钮删除键入的单词。那么,为什么你的问题会询问添加到数组和从数组中删除?@Blackwood她说字符串将进入数组。因此,您可以向数组中添加或删除字符串。。。
If deleteWord = s(i) Then
    s.RemoveAt(i) 'Removes the specified item.
End If
Dim Index As Integer = Array.IndexOf(s, deleteWord)
If Index > -1 Then
    s.RemoveAt(Index)
End If