title: Removing multiple items from ConcurrentDictionary based on conditional key
body: <p>Let's say that I have a <code>ConcurrentDictionary</code>:</p>
  
  <pre><code>var dict = new ConcurrentDictionary&lt;string, someObject&gt;();
  dict.TryAdd("0_someA_someB_someC", obj0);
  dict.TryAdd("1_someA_someB_someC", obj1);
  dict.TryAdd("2_someA_someB_someC", obj2);
  dict.TryAdd("3_someA_someB_someC", obj3);
  </code></pre>
  
  <p>The <code>&lt;number&gt;_</code> in the keys is incremented and being a dictionary, there is no guarantee that the elements are in order.</p>
  
  <p>Now, imagine I wanted to remove all items from the dictionary that have the <code>number</code> less than <code>2</code>. I have no idea what the keys will look like, only that they will be prefixed with a number as above.</p>
  
  <p>How can I remove all elements from the dictionary who's key starts with a value less than <code>2</code>?</p>
  
  <p>For example, the resulting dict after this process will look like this:</p>
  
  <pre><code>dict.TryAdd("2_someA_someB_someC", obj2);
  dict.TryAdd("3_someA_someB_someC", obj3);
  </code></pre>