以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120126)

--  作者:lwj
--  发布时间:2018/6/7 16:36:00
--  提问
编程基础--基本概念--字典中的示例

Dim zd As New Dictionary(Of Integer, String)
zd
.Add(1,"苹果")
zd
.Add(2,"香蕉")
zd
.Add(3,"波罗")
zd
.Add(4,"桔子")
zd
.Add(5,"桃子")
zd
.Remove(1) \'移除键1及其对应的值
zd.Remove(
5) \'移除键5及其对应的值
Output.Show(zd(
2)) \'显示键2对应的值
Output.Show(zd(
3)) \'显示键3对应的值
If
zd.ContainsKey(1) = False Then \'是否存在键1
zd.Add(1,"苹果")
End If
If
zd.ContainsValue("桃子") = False Then \'是否存在值"桃子"
zd.Add(5,"桃子")
End If
For Each
k As Integer In zd.Keys \'显示所有键及其对应的值
Output.Show(K & ":" & zd(k))
Next
For Each
v As String In zd.Values \'显示所有值
Output.Show(v)
Next

zd.Clear
\'清除所有的键和值





为什么执行“显示所有键及其对应的值”的顺序是52341


--  作者:有点甜
--  发布时间:2018/6/7 16:41:00
--  

Dictionary不会排序,所以获取的值是错乱的,

 

如果需要根据键值排序,参考

 

Dim zd As New sortedDictionary(Of Integer, String)
zd.Add(1,"苹果")
zd.Add(2,"香蕉")
zd.Add(3,"波罗")
zd.Add(4,"桔子")
zd.Add(5,"桃子")
zd.Remove(1) \'移除键1及其对应的值
zd.Remove(5) \'移除键5及其对应的值
Output.Show(zd(2)) \'显示键2对应的值
Output.Show(zd(3)) \'显示键3对应的值
If zd.ContainsKey(1) = False Then \'是否存在键1    
    zd.Add(1,"苹果")
End If
If zd.ContainsValue("桃子") = False Then \'是否存在值"桃子"
    zd.Add(5,"桃子")
End If
For Each k As Integer In zd.Keys \'显示所有键及其对应的值
    Output.Show(K & ":" & zd(k))
Next
For Each v As String In zd.Values \'显示所有值
    Output.Show(v)
Next