Foxtable(狐表)用户栏目专家坐堂 → [求助]多级字典如何存储?


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

主题:[求助]多级字典如何存储?

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/28 22:30:00 [显示全部帖子]

试试
Dim tDc2 As Dictionary(of String,object) = tDc

Dim s1() As String = Args
If s1.length > 1 Then
    Dim s3 As String = s1(s1.length - 1)
    For i As Integer = 0 To s1.length - 2
        If tDc2.ContainsKey(s1(i)) = False Then
            Dim dd As new Dictionary(of String,object)
            tDc2.Add(s1(i),dd)
            tDc2 = dd
        End If
    Next
    tDc2(s1(s1.length - 2)) = s3
End If

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


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/31 9:30:00 [显示全部帖子]

SetDicKeyVal函数代码发上来

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


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/31 11:38:00 [显示全部帖子]

Public Sub  SetDicKeyVal(MainDc As Dictionary(Of String,Object) , ParamArray Args() As Object) 'As Dictionary(Of String,Object)

Dim tDc2 As Dictionary(of String,object) = MainDc

Dim s1() As object = Args
If s1.length > 1 Then
    Dim s3 As String = s1(s1.length - 1)
    For i As Integer = 0 To s1.length - 3
        If tDc2.ContainsKey(s1(i)) = False Then
            Dim dd As new Dictionary(of String,object)
            tDc2.Add(s1(i),dd)
            tDc2 = dd
        Else
            tDc2 = tDc2(s1(i))
        End If
    Next
    tDc2(s1(s1.length - 2)) = s3
End If
End Sub


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


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/31 23:12:00 [显示全部帖子]

应该是某个函数有问题,导致编译异常,然后后面的函数就编译不了,所以找不到。看看是哪个名称的函数找不到,检查函数列表前面的函数代码。

另外全局代码有问题也可能导致函数编译异常

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


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/3 9:52:00 [显示全部帖子]

就是一个递归的操作,一级一级处理。
同一个路径不可能会出现相同键及值的,请举例说明

 回到顶部