2010-06-07 3 views
1

값을 사용하여 사전에서 항목을 삭제하는 방법 : 내가 어디 값을 모든 항목을 삭제하려면 위의 사전에서VB.NET 및 LINQ : 나는 bleow에로 사전 컬렉션이

mydic.addvalue(key1, val1) 
mydic.addvalue(key2, val1) 
mydic.addvalue(key3, val1) 
mydic.addvalue(key4, val2) 
mydic.addvalue(key5, val2) 

을 == " VAL1 ", 결과는 다음과 같은 항목이있을 것이다 그래야 :

mydic.addvalue(key4, val2) 
mydic.addvalue(key5, val2) 

내 VB 소스 코드를 VS2008에 3.5

+0

참고 : LINQ 또는 Linq입니다. LinQ는 발음이 잘못된 두 음절임을 암시합니다. Think : Link. –

답변

6
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")