1

这没有任何意义

我有一系列数据字典,我试图从中创建另一个。

所以,我正在遍历东西并检查密钥,在适用的情况下更新密钥,但遇到了最奇怪的问题

If completeDictionary.ContainsKey(sale("splitType1")) Then
    completeDictionary(sale("splitType1")) += (sale("splitPay1") - pxValues)
Else
    completeDictionary.Add(sale("splitType1"), (sale("splitPay1") - pxValues))
End If

这里我们检查是否存在一个键,如果键存在completeDictionary,则使用 then 的名称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

非常感谢您对这个令人沮丧的问题的任何帮助!

4

1 回答 1

0

您只是在检查splitType1,但也在访问splitPay1- 这可能是缺少的条目:

completeDictionary(sale("splitType1")) += (sale("splitPay1") - pxValues)
于 2013-01-21T13:29:11.723 回答