title: Extension methods Dictionary<TKey,TValue>.RemoveAll? Is it possible?
body: <p>I've been trying to write an extension method to mimic List.RemoveAll(Predicate).</p>
  
  <p>So far I've got this:</p>
  
  <pre><code>public static void RemoveAll&lt;TKey,TValue&gt;(this Dictionary&lt;TKey,TValue&gt; dict, 
                                       Predicate&lt;KeyValuePair&lt;TKey,TValue&gt;&gt; condition)
  {
      Dictionary&lt;TKey,TValue&gt; temp = new Dictionary&lt;TKey,TValue&gt;();
  
      foreach (var item in dict)
      {
          if (!condition.Invoke(item))
              temp.Add(item.Key, item.Value);
      }
  
      dict = temp;
  }
  </code></pre>
  
  <p>Any pointers? Is this a completely naive implementation?</p>