vb.net 教程 1-13 Dictionary

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

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 教程 目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值