如何将密钥对中的值转换为列表?

时间:2017-06-11 13:38:01

标签: vb.net

 Dim dict As New Dictionary(Of String, KeyValuePair(Of String, String))
 dict.Add("key", New KeyValuePair(Of String, String)("value1","value2"))

我想将value2作为列表。

1 个答案:

答案 0 :(得分:0)

使用LINQ Extensions:

' use KeyValuePair of dictionary, that gives 2 levels of KeyValuePairs
Dim list = dict.Select(function(kvp) kvp.Value.Value).ToList()

' Or use the Values part of Dictionary
Dim list = dict.Values.Select(function(v) v.Value).ToList()

' Adding some conditional and getting value1 instead:
Dim list = dict.Values.Where(function(k) k.Value = "value2").Select(function(v) v.Key).ToList()

对于KeyValuePair x.Key是“value1”而x.Value是“value2”

请注意,在大Dictionary上这会变得非常慢,并且可能有更好的方法来解决这个问题,但这需要有关实际用例的更多信息。