在字典中对值进行分组

时间:2017-09-13 06:29:28

标签: vb.net dictionary

我有一个字典,其中包含随机数量的变量(根据它扫描的文档而有所不同),格式如下

  • ,A,500
  • ,ORD,50000
  • ,ORD,200

我需要能够将属于同一个类的所有值组合在一起(ORD是一个,A是另一个),然后将整数加在一起,这样我就可以输出

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)

1 个答案:

答案 0 :(得分:0)

将词典结构更改为Dictionary(Of String, List(Of Int32))

然后检查密钥并根据密钥的存在添加或编辑字典条目:

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
    )

最后一点是我的头脑。如果您遇到错误,请使用它。

相关问题