title: ConcurrentDictionary as cache
body: <p>I have <code>ConcurrentDictionary&lt;string, SomeClass&gt;</code> which I use as not expiring cache. I want to periodically update it from external data source. 
  I can use <code>TryUpdate</code> or similar methods to populate <code>ConcurrentDictionary</code>. But I also want to delete some values which are not present in data source anymore.</p>
  
  <p>How to achieve this? </p>
  
  <p>I know about constructing <code>ConcurrentDictionary</code> using <code>Dictionary</code> as a source. But this not applicable as I'm updating already existing <code>ConcurrentDictionary</code> and cannot periodically construct a new one.</p>
  
  <p>** EDIT **</p>
  
  <p>I can do this operation in two steps</p>
  
  <ol>
  <li><p>Iterate thru source <code>Dictionary</code> and call <code>TryUpdate</code> on target <code>ConcurrentDictionary</code>. </p></li>
  <li><p>Iterate thru target <code>ConcurrentDictionary</code> and delete every key that is not present in source <code>Dictionary</code></p></li>
  </ol>
  
  <p>But I'd like to have more elegant way if present</p>