1

これは意味がありません

別の辞書を作成しようとしているデータの一連の辞書があります。

だから、私は何かをループしてキーをチェックし、該当するキーを更新していますが、最も奇妙な問題に遭遇しました

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

この苛立たしい問題の助けをいただければ幸いです。

4

1 に答える 1

0

をチェックしているだけsplitType1でなく、アクセスもしていますsplitPay1- それはおそらく欠落しているエントリです:

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