我在表单的OnLoad事件子中预定义了几个字典(带有KeyPairValue元素)。然后我将每个字典添加到方法之外定义的集合中,以便它可以在表单的子例程之间访问。到目前为止一切顺利。
我想使用这个对象来创建字符串数组,作为几个不同的组合框的数据源。为了做到这一点,我想检索之前分配给这个集合中的字典元素的键名。我想通过循环遍历集合内特定字典的元素并检索键名来实现这一点。但是,我无法确切地弄清楚如何检索密钥名。下面是我正在尝试的:
Collection.Item("Dictionary1")(柜台)。key
我想要得到的是,有一个字典的集合("Dictionary1","Dictionar2"等),我可以按名字查找。一旦选择了字典,我想循环遍历KeyValuePairs并检索键名。但是,我还想将每个键名添加为String数组的成员,这样我就可以将该String数组指定为comboBox的数据源。
请告诉我如何在不创建For之外的计数器的情况下做到这一点。循环。
谢谢
您应该能够按照这些行做一些事情:
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
试试这个
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()
您应该能够这样做:
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
这段代码的问题是它没有标识每个键属于哪个字典。但是,如果将键保存在数组列表中,其中每个元素都有键和字典的名称,则可以解决该问题。