Visual Studio Visual Basic:访问字典集合

时间:2013-01-02 17:50:49

标签: vb.net collections dictionary

我在表单的OnLoad事件子中预定义了几个Dictionaries(带有KeyPairValue元素)。然后我将每个字典添加到方法外部定义的集合中,以便可以在表单的子例程之间访问它。到目前为止一切都很好。

我想使用此对象创建String数组,以用作几个不同ComboBox的DataSource。为此,我想检索我之前分配给此集合中字典元素的键名。我想通过循环遍历集合中特定字典的元素并检索密钥名称来实现此目的。但是,我无法弄清楚如何检索密钥名称。这是我正在尝试的:

Collection.Item( “Dictionary1”)(计数器)。重点

我的目标是,有一个字典集(“Dictionary1”,“Dictionar2”等),我可以通过名字查找。选择字典后,我想循环访问KeyValuePairs并检索键名。但是,我还想将每个键名添加为String数组的成员,以便我可以将该String数组指定为comboBox的数据源。

如果没有在For ..循环之外创建一个计数器,请告诉我如何做到这一点。

谢谢

3 个答案:

答案 0 :(得分:1)

你应该能够沿着这些方向做点什么:

    Dim cValues As New System.Collections.Generic.Dictionary(Of String, Integer)
    Dim cKeys As New System.Collections.Generic.List(Of String)

    For Each sKey As String In cValues.Keys
        cKeys.Add(sKey)
    Next

答案 1 :(得分:0)

试试这个

Dim dict As Dictionary(Of String, Integer) = Collection.Item("Dictionary1")
Dim myArray As String()
Dim list As New List(Of String)

  For Each aKey As String In dict.Keys
        list.Add(aKey)
  Next

myArray = list.ToArray()

答案 2 :(得分:0)

你应该可以这样做:

  Dim DictCol As New List(Of Dictionary(Of T, T)) 'this is collection of Dictionaries as a list

  Dim Keyes As New List(Of T) 'will store keys in here

  For Each dict In DictCol

    For Each pair In dict

       Keyes.Add(pair.Key)

    Next

  Next

此代码的问题在于它无法识别每个键所属的字典。但是,如果将Keyes保留在数组列表中,其中每个元素都有键和字典名称,则可以解决该问题。