-2

我有一个名为cc1的自定义控件对象。我像这样存储 cc1Public cc1List As New List(Of cc1)并向其中添加东西,就像一个魅力。

现在我想用一个已知的索引删除其中的一些项目,所以我创建Dim cc1ListTemp As New List(Of cc1),循环遍历 cc1 的整个索引,并通过此代码附加所有项目,不包括已删除的索引:cc1ListTemp.Add(cc1List(i))但它继续抛出 OutOfRangeException,从第一个循环(i = 0)一直向上。

但我确定cc1List(i)i = 0 到 5 的位置已完全填充,甚至在触发异常之前在运行时进行检查(我可以完全访问/编辑/调用 cc1List(0))。

我需要以不同的方式附加吗?如果需要,我可以提供更多代码。

编辑0:

        Dim cc1ListTemp As New List(Of cc1)
        For i = 0 To CWBListMaxIndex
            If Not i = IndexToRemove Then
                cc1ListTemp.Add(cc1List(i))
            End If
        Next
        cc1List = cc1ListTemp

添加工作正常,混合添加/追加。

cc1List.Append(cc1TempObject)
cc1List.Add(cc1TempObject)

Edit1:在一个新项目中用文本框替换 cc1 复制了它。

4

1 回答 1

0

由于您知道要删除的索引,请使用该RemoveAt方法。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim lst As New List(Of TextBox) From {TextBox1, TextBox2, TextBox3, TextBox4}
    Dim IndexToRemove = 1
    lst.RemoveAt(IndexToRemove)
    For Each TB In lst
        Debug.Print(TB.Name)
    Next
End Sub

印刷

TextBox1
TextBox3
TextBox4

在即时窗口中

于 2021-10-01T05:55:35.433 回答