以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 字典的值可以是集合吗? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41170) |
-- 作者:smart-grid -- 发布时间:2013/10/12 22:32:00 -- 字典的值可以是集合吗? 字典的值可以是集合吗 |
-- 作者:有点甜 -- 发布时间:2013/10/12 22:35: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 |
-- 作者:jspta -- 发布时间: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 -- 发布时间:2013/10/13 7:24:00 -- 莫非字典只是引用了集合? 我需要的结果是: 李 1 2 3 张 1 2 3 4 5 |
-- 作者:jspta -- 发布时间: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 |