title: Where() with Replace() in Dictionary.Where(p => p.Key is T)
body: <p>I have a <code>System.Collections.Generic.Dictionary&lt;System.Web.UI.Control, object&gt;</code> where all keys can be either type of <code>System.Web.UI.WebControls.HyperLink</code> or type of <code>System.Web.UI.WebControls.Label</code>.</p>
  
  <p>I want to change <code>Text</code> property of each control. Because HyperLink doesn't implement (why?!) <code>ITextControl</code>, I need to cast Label or HyperLink explicitly:</p>
  
  <pre><code>Dictionary&lt;Control,object&gt; dic = ..
  
  dic
    .Where(p =&gt; p.Key is HyperLink)
    .ForEach(c =&gt; ((HyperLink)c).Text = "something")
  
  dic
    .Where(p =&gt; p.Key is Label)
    .ForEach(c =&gt; ((Label)c).Text = "something")
  </code></pre>
  
  <p>Are there ways to workaround such approach?</p>