版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
Dictionary 是表示根据键的哈希代码进行组织的键值对(Key/Value)的集合。
Dictionary类同HashTable类操作差不多,本节内容将用示例方式讲解Dictionary 增、删、改、枚举、查找操作。
设计窗口如下:
定义窗体级变量,注意Dictionary必须指定参数类型
Dim myDictionary As Dictionary(Of String, String)
当窗体载入时候:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
myDictionary = New Dictionary(Of String, String)
End Sub
向Dictionary增加键值对:
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
myDictionary.Add(txtKey.Text, txtValue.Text)
End Sub
当添加了键值对后,采用以下三种方法可以枚举出键值对:
Private Sub showAll_Click(sender As Object, e As EventArgs) Handles showAll.Click
Dim info As String = ""
For Each singleKey As KeyValuePair(Of String, String) In myDictionary
info &= singleKey.Key & ":" & singleKey.Value & ControlChars.CrLf
Next
info &= "===============" & ControlChars.CrLf
For Each singleKey As String In myDictionary.Keys
info &= singleKey & ":" & myDictionary(singleKey) & ControlChars.CrLf
Next
info &= "===============" & ControlChars.CrLf
Dim myDicEnum As IDictionaryEnumerator = myDictionary.GetEnumerator()
Dim kvp As KeyValuePair(Of String, String)
While myDicEnum.MoveNext()
kvp = CType(myDicEnum.Current, KeyValuePair(Of String, String))
info &= kvp.Key & ":" & kvp.Value & ControlChars.CrLf
End While
txtInfo.Text = info
End Sub
按Key查找键值对:
Private Sub btnFindKey_Click(sender As Object, e As EventArgs) Handles btnFindKey.Click
If myDictionary.ContainsKey(txtFind.Text) Then
txtInfo.Text = "找到Key:" & txtFind.Text & " 对应值:" & myDictionary(txtFind.Text)
Else
txtInfo.Text = "未找到Key:" & txtFind.Text
End If
End Sub
查找Value是否存在:
Private Sub btnFindValue_Click(sender As Object, e As EventArgs) Handles btnFindValue.Click
If myDictionary.ContainsValue(txtFind.Text) Then
txtInfo.Text = "找到Value:" & txtFind.Text ' & " 对应Key:" & myDictionary(txtFind.Text)
Else
txtInfo.Text = "未找到Value:" & txtFind.Text
End If
End Sub
删除某个键值对:
Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click
If myDictionary.ContainsKey(txtFind.Text) Then
myDictionary.Remove(txtFind.Text)
End If
End Sub
修改Value值:
Private Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
If myDictionary.ContainsKey(txtFind.Text) Then
myDictionary(txtFind.Text) = txtEdit.Text
End If
End Sub
另外,清除所有键值对:
myDictionary.Clear()
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net 教程 目录