Foxtable(狐表)用户栏目专家坐堂 → 流程控制语句


  共有2624人关注过本帖树形打印复制链接

主题:流程控制语句

帅哥哟,离线,有人找我吗?
侠客1985
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:261 威望:0 精华:0 注册:2023/11/6 20:32:00
流程控制语句  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4772 积分:34668 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2023/12/7 8:06:00 [只看该作者]

要自动排序用:Dim 字典 As New sortedDictionary(Of Integer, String)

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/7 8:39:00 [只看该作者]

Dictionary字典存储内容是无序的。要排序改为使用sortedDictionary

 回到顶部
帅哥哟,离线,有人找我吗?
侠客1985
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:261 威望:0 精华:0 注册:2023/11/6 20:32:00
  发帖心情 Post By:2023/12/7 20:55:00 [只看该作者]

您好,老师,dim zd as New sortedDictionary(of 键类型,值类型) 在帮助文档没有相关知识么,有什么资料可以参考帮助文档没有的内容

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/7 22:03:00 [只看该作者]

和Dictionary用法完全一样。只不过sortedDictionary添加的内容会自动按键值进行排序

 回到顶部