【发布时间】:2016-08-16 15:03:34
【问题描述】:
Class MainWindow
Dim states As Collection = New Collection()
Sub Output(Value As String)
txtOutput.Text += Value + vbCrLf
End Sub
Sub ClearOutput(sender As Object, e As RoutedEventArgs) Handles btnClear.Click
txtOutput.Text = ""
txtInput.Text = ""
End Sub
Sub btnAdd_Click(sender As Object, e As RoutedEventArgs) Handles btnAdd.Click
Dim input As String = txtInput.Text
'Dim state As String = input.Substring(0, input.IndexOf(",")).ToString
'Dim stateID As String = input.Substring(input.IndexOf(" ")).ToString
states.Add(input)
Output("You added: " + input)
End Sub
Sub btnGet_Click(sender As Object, e As RoutedEventArgs) Handles btnGet.Click
Dim stateID As String = txtInput.Text.ToString
If states.Contains(stateID) Then
Output("You requested: " + states.Item(stateID))
Else
Output("Not found")
End If
End Sub
Sub btnRemove_Click(sender As Object, e As RoutedEventArgs) Handles btnRemove.Click
Dim stateID As String = txtInput.Text.ToString
If states.Contains(stateID) Then
states.Remove(stateID)
txtOutput.Text = ""
Output(stateID + " removed; here's what's left:")
OutputStates()
Else
Output("Not found")
End If
End Sub
Sub btnShow_Click(sender As Object, e As RoutedEventArgs) Handles btnShow.Click
OutputStates()
End Sub
Sub OutputStates()
For Each state As String In states
Output(state)
Next
End Sub
End Class
我已经完成了添加和显示按钮。 输入是:加利福尼亚州,加利福尼亚州
但我的问题是删除和获取按钮。 例如,我输入“CA”作为 stateID,如果我单击获取或删除按钮,它将检查 states 集合中是否有带有“CA”字符串的项目,但即使我使用 states(1 ).Contains(stateID) 这是加利福尼亚州,CA
【问题讨论】:
-
VB.NET 中有很多更好的集合类型。请丢弃这些遗留的 VB6 遗产(如果可以的话)
-
这是我们教授给的代码,我们只需要添加输入而不是硬编码输入。
-
您的教授肯定希望您练习 For Each 语句。需要迭代集合并检查每个元素以找到与“CA”的匹配项。
-
VB.NET 不是 VB7。它是一种全新的语言,具有全新的库。你的教授应该修改他的旧作业。
标签: arrays vb.net list collections