Foxtable(狐表)用户栏目专家坐堂 → 字典的值可以是集合吗?


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

主题:字典的值可以是集合吗?

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


加好友 发短信
等级:婴狐 帖子:5 积分:108 威望:0 精华:0 注册:2013/10/12 22:18:00
字典的值可以是集合吗?  发帖心情 Post By:2013/10/12 22:32:00 [只看该作者]

字典的值可以是集合吗

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/12 22:35:00 [只看该作者]

可以是任意类型。

 回到顶部
帅哥哟,离线,有人找我吗?
smart-grid
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:5 积分:108 威望:0 精华:0 注册:2013/10/12 22:18:00
这样使用结果不正常  发帖心情 Post By:2013/10/13 0:23:00 [只看该作者]

Dim li As New List(of Integer)
Dim zd As New Dictionary(Of String, List(Of Integer))

li.Add(1)
li.Add(2)
li.Add(3)
zd.Add("李", li)
li.Add(4)
li.Add(5)
zd.Add("张", li)

For Each k As String In zd.Keys '显示所有键及其对应的值
    Output.Show(k)
    For Each v As Integer In zd(k) '显示所有值
        Output.Show(v)
    Next
Next
zd.Clear

结果:

1
2
3
4
5

1
2
3
4
5

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/10/13 1:33:00 [只看该作者]

以下是引用smart-grid在2013-10-13 0:23:00的发言:
Dim li As New List(of Integer)
Dim zd As New Dictionary(Of String, List(Of Integer))

li.Add(1)
li.Add(2)
li.Add(3)
zd.Add("李", li)
li.Add(4)
li.Add(5)
zd.Add("张", li)

For Each k As String In zd.Keys '显示所有键及其对应的值
    Output.Show(k)
    For Each v As Integer In zd(k) '显示所有值
        Output.Show(v)
    Next
Next
zd.Clear

结果:

1
2
3
4
5

1
2
3
4
5

哪里不正常了?你添加了2次字典li,li第一次先添加3个项,之后再添加2项,总共五项,所以你最后输出就是5项


 回到顶部
帅哥哟,离线,有人找我吗?
smart-grid
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:5 积分:108 威望:0 精华:0 注册:2013/10/12 22:18:00
莫非字典只是引用了集合?  发帖心情 Post By:2013/10/13 7:24:00 [只看该作者]

我需要的结果是:

1
2
3

1
2
3
4
5

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/10/13 15:42:00 [只看该作者]

以下是引用smart-grid在2013-10-13 7:24:00的发言:
我需要的结果是:

1
2
3

1
2
3
4
5

知道你是需要这个,但是你引用的是li这个字典变量,变量是会改变的,不是你添加后就不要变了,你要么重新声明,要么clear掉KEY


 回到顶部