title: Transform a dictionary to another with a different key type
body: <p>Given:</p>
  
  <pre><code>class KeyType1{...}
  class KeyType2{...}
  class ValueType{...}
  
  public KeyType2 Lookup(KeyType1 value)
  {
      // Returns a unique value of KeyType2 or otherwise, null
  }
  </code></pre>
  
  <p>Is there a neat LINQ way to transform:</p>
  
  <p><code>IDictionary&lt;KeyType1,ValueType&gt;</code> ==> <code>IDictionary&lt;KeyType2,ValueType&gt;</code></p>
  
  <p>The following important points:</p>
  
  <ul>
  <li>No 2 values of type <code>KeyType1</code> map to the same <code>KeyType2</code></li>
  <li><strong>edit</strong> It is possible <code>Lookup</code> may return null i.e. the mapping may not be complete. In such cases, these entries should be omitted from the new dictionary</li>
  </ul>