2017-09-13 6 views
0

私は変数のランダムな量が含まれている辞書は、次の形式で(それはスキャンのドキュメントによって異なります)しているグループ値が

  • 、A、500
  • 、ORD、50000
  • 、ORD、私が出力できるように一緒に整数を追加し(ORDは、一方は、別である)一緒に同じクラスに属するすべての値のグループにできるようにする必要があり、200

A - 500

ORD - 50200

だから、私はクラスの量に応じて、異なる整数変数を割り当て、それらを一緒に追加する必要があると思うが、私は本当にについて移動する方法がわかりません

Dim sharenum As Int32 = 0 
Dim tempshold As String = "" 
    For Each sHolder In shareholders 
     tempshold = Replace(sHolder.numberShares, ",", "") 
     sharenum = Convert.ToInt32(tempshold) 
     dicClassShares.Add("," & Trim(sHolder.shareClass) & ",", sharenum) 
+0

辞書を初期化するコードを表示します。 '' ORD''と '' A''は辞書のキーですか? – Fabio

+0

編集として追加されました –

+2

'、ORD'をキーとして辞書に追加すると、「キーは既に存在します」というエラーが表示されないのはなぜですか? – muffi

答えて

0
Dictionary(Of String, List(Of Int32))

にあなたの辞書の構造を変更し

:それは

EDITコードを挿入しますそれ

Dim dicClassShares As Dictionary(Of String, List(Of Int32)) = New Dictionary(Of String, List(Of Int32)) 

If Not dicClassShares.ContainsKey Then 
    dicClassShares.Add("," & Trim(sHolder.shareClass) & ",", New List(Of Int32)) 
End If 
dicClassShares("," & Trim(sHolder.shareClass) & ",").Add(sharenum) 

そして最後に、あなたが望む合計値を取得...

Dim summedValues As Dictionary(Of String, Int32) = 
    dicClassShares.ToDictionary(Of String, Int32)(
     Function(k) k.Key, 
     Function(v) v.Value.Sum 
    ) 

は、次にキーをチェックし、いずれかのキーの有無に応じて、辞書のエントリを追加または編集します最後のビットは私の頭の上から外れています。エラーが発生した場合は、その周辺で遊んでください。

+0

必要だった –