以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  流程控制语句  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189532)

--  作者:侠客1985
--  发布时间:2023/12/6 21:44:00
--  流程控制语句
在帮助文档案例中用For each ....next语句 遍历字典时输出的字典键与键对应的值不是按顺序遍历么?

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 \'
清除所有的键和值

为什么会是这个结果

5:桃子

2:香蕉

3:波罗

4:桔子

1:苹果

而不是这个结果

1:苹果

2:香蕉

3:波罗

4:桔子

5:桃子




--  作者:y2287958
--  发布时间:2023/12/7 8:06:00
--  
要自动排序用:Dim 字典 As New sortedDictionary(Of Integer, String)
--  作者:有点蓝
--  发布时间:2023/12/7 8:39:00
--  
Dictionary字典存储内容是无序的。要排序改为使用sortedDictionary
--  作者:侠客1985
--  发布时间:2023/12/7 20:55:00
--  
您好,老师,dim zd as New sortedDictionary(of 键类型,值类型) 在帮助文档没有相关知识么,有什么资料可以参考帮助文档没有的内容
--  作者:有点蓝
--  发布时间:2023/12/7 22:03:00
--  
和Dictionary用法完全一样。只不过sortedDictionary添加的内容会自动按键值进行排序