Excel VBA字典重复键
我有这个代码:
Dim list As Object Set list = jsonParse.Item("list") Dim groupedByProjectElement As New Dictionary For i = 1 To 2 Set pE = list(i).Item("projectElement") Dim projectElementsDictionary As New Dictionary If groupedByProjectElement.Exists(pE.Item("businessKey")) Then Set projectElementsDictionary = groupedByProjectElement(pE.Item("businessKey")) projectElementsDictionary.Add projectElementsDictionary.count + 1, list(i) End If If Not groupedByProjectElement.Exists(pE.Item("businessKey")) Then projectElementsDictionary.Add 1, list(i) groupedByProjectElement.Add pE.Item("businessKey"), projectElementsDictionary End If Next i
在第二个迭代中,我收到错误:
This key is already associated with an element of this collection
但我期待在第二次迭代projectElementsDictionary应该是一个新的词典已经。
我错过了什么?
列表看起来像这样:
"list": [ { "projectElement": { "businessKey": "123", "customerUnit": { "businessKey": "123", "links": [], "shortDescription": "123", "text": "123", "version": null } } } ]
我会回答我自己的问题:
Dim groupedByProjectElement As New Dictionary For i = 1 To 25 Set pE = List(i).Item("projectElement") Dim projectElementsDictionary As Dictionary If groupedByProjectElement.Exists(pE.Item("businessKey")) Then Set projectElementsDictionary = groupedByProjectElement(pE.Item("businessKey")) projectElementsDictionary.Add projectElementsDictionary.Count + 1, List(i) Else Set projectElementsDictionary = New Dictionary projectElementsDictionary.Add 1, List(i) groupedByProjectElement.Add pE.Item("businessKey"), projectElementsDictionary End If Next i