【发布时间】:2013-01-04 13:39:26
【问题描述】:
这没有意义
我有一系列数据字典,我正试图从中创建另一个。
所以,我正在循环遍历内容并检查密钥,在适用的情况下更新密钥,但遇到了最奇怪的问题
If completeDictionary.ContainsKey(sale("splitType1")) Then
completeDictionary(sale("splitType1")) += (sale("splitPay1") - pxValues)
Else
completeDictionary.Add(sale("splitType1"), (sale("splitPay1") - pxValues))
End If
这里我们检查completeDictionary中的键是否存在,名称为sale("splitType1"),如果存在,更新它的值,如果不存在,添加一个新值。
这应该可以正常工作,但它似乎正在找到密钥但无法更新它,我收到此错误:
The given key was not present in the dictionary.
这指的是行:
completeDictionary(sale("splitType1")) += (sale("splitPay1") - pxValues)
但如果密钥不存在,则不应运行该行,因此它之前的 If !
completeDictionary 是通过循环数组创建的:
Dim completeDictionary As New Generic.Dictionary(Of String, Double)
For Each Type as string In paymentTypes << paymentTypes is simply an array
completeDictionary.Add(Type, 0.0)
Next
非常感谢您对这个令人沮丧的问题的任何帮助!
【问题讨论】:
标签: arrays vb.net collections dictionary