VB中的字典和For循环问题

时间:2013-06-19 11:37:56

标签: arrays vb.net visual-studio for-loop dictionary

如果这是我的字典,如何获取字典数组中的每个值。

        rebDictionary= New Dictionary(Of String, String())

    rebDictionary.Add("wrd", {"yap", "tap"})

我试过For Each rtbval As String In rebDictionary.value

但这根本不起作用

2 个答案:

答案 0 :(得分:3)

值集合属性名为Values,请尝试以下操作:

For Each rtbval As String() In rebDictionary.Values

但是,你要迭代String()的集合,因为你的字典是Of(String, String())

您可以遍历键(String):rebDictionary.Keys或使用LINQ SelectMany来迭代从您的词典Values中取出的字符串列表:

For Each rtbval as String In rebDictionary.Values.SelectMany(Function(x) x)

答案 1 :(得分:1)

以下代码遍历所有键和值。您可以选择您想要/不想要的任何部分:

    For Each kvp As KeyValuePair(Of String, String()) In rebDictionary
        Debug.WriteLine("Key:" + kvp.Key)
        For Each stringValue As String In kvp.Value
            Debug.WriteLine(" Value:" + stringValue)
        Next
    Next

可以只是遍历键:

    For Each key As String In rebDictionary.Keys
        Debug.WriteLine("Key:" + key)
    Next

通过值:

    For Each value As String() In rebDictionary.Values
        For Each stringValue As String In value
            Debug.WriteLine("value:" + stringValue)
        Next
    Next

但是,做其中任何一个可能都没有那么有用,因为你不知道相应的键或值,我怀疑迭代键值对可能会慢很多。