Foxtable(狐表)用户栏目专家坐堂 → 请教:字典与集合问题


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

主题:请教:字典与集合问题

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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
请教:字典与集合问题  发帖心情 Post By:2019/7/9 14:52:00 [只看该作者]

如题。
目的:把有规律的字符串转化成集合储存于字典中
问题:储存前每个集合的值是不同的,但存入字典后重新提取出来,结果全部是一样的,什么原因?如何修改?

代码如下:绕来绕去,自己都给绕晕了
Dim dic As New Dictionary(Of String, object)
Dim lst As new List(of String)
Dim sss As String = "11|22|33|44/66|77|88|99/01|02|03|04|05"
For Each ss As String In sss.split("/")
    lst.Clear
    For Each s As String In ss.split("|")
        lst.Add(s)
    Next
    Output.Show(String.join(vbcrlf,lst.ToArray))
    dic.Add(ss,lst)
Next
Dim ls As List(of String) = dic("11|22|33|44")
Output.Show(String.join(vbcrlf,lst.ToArray))
ls = dic("66|77|88|99")
Output.Show(String.join(vbcrlf,lst.ToArray))
ls = dic("01|02|03|04|05")
Output.Show(String.join(vbcrlf,lst.ToArray))

或者说:如何直接给字典中的集合赋值?
[此贴子已经被作者于2019/7/9 14:54:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/9 14:57:00 [只看该作者]

Dim dic As New Dictionary(Of String, object)

Dim sss As String = "11|22|33|44/66|77|88|99/01|02|03|04|05"
For Each ss As String In sss.split("/")
    Dim lst As new List(of String)
    For Each s As String In ss.split("|")
        lst.Add(s)
    Next
    'Output.Show(String.join(vbcrlf,lst.ToArray))
    dic.Add(ss,lst)
Next
Dim ls As List(of String) = dic("11|22|33|44")
Output.Show(String.join(vbcrlf,ls.ToArray))
ls = dic("66|77|88|99")
Output.Show(String.join(vbcrlf,ls.ToArray))
ls = dic("01|02|03|04|05")
Output.Show(String.join(vbcrlf,ls.ToArray))


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/9 14:59:00 [只看该作者]

集合属于对象引用,不管被多少个地方引用,都指向同一个内存地址。所以需要new不同的集合,使用多个对象

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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/7/9 15:09:00 [只看该作者]

噢,原来如此,又学一招,多谢蓝版!图片点击可在新窗口打开查看
[此贴子已经被作者于2019/7/9 15:11:15编辑过]

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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/7/9 15:23:00 [只看该作者]

再问:
如何我想在字典中某个指定的键值直接加上一个元素,如何操作?
例如:键"11|22|33|44"目前对应的值为“11,22,33,44”4个元素,现在想在这基础上加上一个或多个元素,怎么搞?谢谢

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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/7/9 15:30:00 [只看该作者]

鼓捣出来了,谢谢!

 回到顶部