簡體   English   中英

VB.NET和linQ:如何使用值從字典中刪除條目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM