【问题标题】:Create list of keys with multiple values within in single key and duplicate entry of the keys在单个键中创建具有多个值的键列表并重复输入键
【发布时间】:2018-07-18 14:27:24
【问题描述】:

我是 vb.net 的新手。我想从动态循环中创建一个键值对或一个数组。键名可以有多个我想以下列方式输出的条目。我尝试使用字典,但它不允许重复键。

在以前的 C# 解决方案中,我找不到适合我的情况的解决方案,因为我想使用 KeyName:{value1, value2, value3} 之类的键获取多个值。这三个值必须在 KeyName 之内,而不是像 KeyName:value1、KeyName:value2。我想把它当作键值对来对待。

Name1:{12, 12, 15}
Name1:{13, 12, 18}
Name2:{12, 11, 10}
Name3:{1, 2, 4}
Name4:{1, 2, 4}
Name1:{1, 2, 4}

稍后我需要通过使用相同的键进行分组来打印具有相同名称的键

【问题讨论】:

标签: vb.net


【解决方案1】:

自定义集合的替代方案可以是 ListKeyValuePairs :

Dim list = New List(Of KeyValuePair(Of String, Integer()))

list.Add(New KeyValuePair(Of String, Integer())("Name1", {1,2,3}))
list.Add(New KeyValuePair(Of String, Integer())("Name1", {1,2,3}))

For Each pair In list
    debug.print(pair.Key & ": " & String.Join(",", pair.Value))
Next

Tuples:

Dim list = New List(Of Tuple(Of String, Integer()))

list.Add(Tuple.Create("Name1", {1,2,3}))
list.Add(Tuple.Create("Name1", {1,2,3}))

For Each pair In list
    Debug.Print(pair.Item1 & ": " & String.Join(",", pair.Item2))
Next

【讨论】:

  • 元组很适合这个... +1
  • 我想我需要稍后拆分逗号 (,) 以获得这些单独的值。我曾想过这种方法可以使其成为键值对。我正在寻找是否有任何方法而不是这个。让我试试这个解决方案..
猜你喜欢
  • 2012-03-05
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
  • 2021-03-04
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多