[英]VB.NET and linQ: How to delete entries from a dictionary using the value
我有一个字典收藏如下:
mydic.addvalue(key1, val1)
mydic.addvalue(key2, val1)
mydic.addvalue(key3, val1)
mydic.addvalue(key4, val2)
mydic.addvalue(key5, val2)
从上面的字典中,我想删除value ==“ val1”的所有条目,以便结果仅包含以下条目:
mydic.addvalue(key4, val2)
mydic.addvalue(key5, val2)
我的VB源代码在VS2008上,目标版本为3.5
Sub RemoveByValue(Of TKey, TValue)(ByVal dictionary As Dictionary(Of TKey, TValue), ByVal someValue As TValue)
Dim itemsToRemove = (From pair In dictionary _
Where pair.Value.Equals(someValue) _
Select pair.Key).ToArray()
For Each item As TKey In itemsToRemove
dictionary.Remove(item)
Next
End Sub
用法:
Dim dictionary As New Dictionary(Of Int32, String)
dictionary.Add(1, "foo")
dictionary.Add(2, "foo")
dictionary.Add(3, "bar")
RemoveByValue(dictionary, "foo")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.