我正在尝试使用项目索引将列表中的项目与字符串进行比较。但是,代码没有按照它的意图去做。它应该删除列表中的另一个项目。
以下是代码:
If (result.Count = 12) Then
If (result.item(2) = "US") Then
result.Remove(7)
End If
TextBox8.Text = result(11)
Else
result.Remove(11)
TextBox8.Text = ""
End If
根据结果,索引(2)有单词“US”但由于某种原因它不起作用而不删除其他项目。有什么建议吗?
答案 0 :(得分:1)
我尝试了你的代码。 所以你有一个错误:
TextBox8.Text = result(11)'索引超出范围
这是合乎逻辑的,因为你有12个项目(索引从0到11)。您删除索引号7.
所以现在你有11个项目(索引0到10)。你无法从11中获得价值
实际删除工作完美。你有什么问题?
if的第二部分:
Else
result.Remove(11)
TextBox8.Text = ""
End If
仅在result.count<> 12时有效
这也有问题,因为如果result.Count = 5你不能删除(11)。
也许最好告诉你想要实现的目标。
*** PS。我想你的名单是这样的:
Dim result As New List(Of String)
For i = 0 To 11
result.Insert(i, i.ToString)
Next
result(2) = "US"
答案 1 :(得分:1)
正如Dan Puzey所指出的,Remove
方法从列表中删除了给定的对象。因此,当您调用Remove(7)
时,它不会从列表中删除第七个项目,而是从列表中删除数字7本身。我怀疑你实际上要做的是删除第七个元素(无论发生什么对象),在这种情况下你想要调用RemoveAt(7)
。