Vb.net 嵌套词典

Vb.net 嵌套词典,vb.net,Vb.net,我有一个嵌套的dict,比如: Public collectionMain As New Dictionary(Of String, Dictionary(Of String, String)) 插入新项目时: collectionMain.Add(node.SelectSingleNode("key").InnerText.Trim, collectionSub) collectionSub.Clear() 在“添加我的收藏”选项卡上,用键和值填充。 但是调用clear时,collect

我有一个嵌套的dict,比如:

 Public collectionMain As New Dictionary(Of String, Dictionary(Of String, String))
插入新项目时:

collectionMain.Add(node.SelectSingleNode("key").InnerText.Trim, collectionSub)
collectionSub.Clear()
在“添加我的收藏”选项卡上,用键和值填充。 但是调用clear时,collectionMain.value为空

如何保留collectionMain字典的值

collectionSub需要清除,它处于一个用于填充的循环中


谢谢

您需要为每个值创建一个
新的
字典(字符串、字符串)。

每当您添加一个新的字典项时,您必须为该键声明一个新的子字典:

collectionMain.Add(node.SelectSingleNode("key").InnerText.Trim, _
                   New Dictionary(Of String, String))

collectionSub
变量实际上不应该存在,因为
collectionMain
中的每个键都有自己的字典。

不要清除
collectionSub
。不要忘记您正在添加对
字典(字符串、字符串)
-collectionSub的引用。如果要清除该对象,则必须创建
collectionSub
的“克隆”(深度副本)。看一看这样的线程-

你是什么意思?为collectionmain值中需要的每个词典创建一个新的collectionSub?它在一个循环中,我不知道我需要多少集合订阅。@TomVD:在循环中创建一个
新字典(字符串,字符串)(
)。