title: How to cast List<object> to List<SomethingElse>
body: <p>How can i cast a <code>List&lt;object&gt;</code> to <code>List&lt;SomethingElse&gt;</code>?</p>
  
  <p>(<em>where <code>SomethingElse</code> is known to descend from <code>object</code></em>)</p>
  
  <hr>
  
  <p><strong>Bonus Chatter</strong></p>
  
  <p>Casting the list:</p>
  
  <pre><code>List&lt;Object&gt; first = ...;
  
  List&lt;SomethingElse&gt; second = (List&lt;SomethingElse&gt;)first;
  </code></pre>
  
  <p>doesn't work:</p>
  
  <blockquote>
    <p>Cannot convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List'</p>
  </blockquote>
  
  <p>Casting the list:</p>
  
  <pre><code>List&lt;SomethingElse&gt; second = first.Cast&lt;SomethingElse&gt;();
  </code></pre>
  
  <p>doesn't work:</p>
  
  <blockquote>
    <p>Cannot implicitely convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List'</p>
  </blockquote>
  
  <p>i don't actually need the full <code>List&lt;T&gt;</code> object, just an <code>ICollection&lt;T&gt;</code> will do:</p>
  
  <pre><code>ICollection&lt;SomethingElse&gt; second = first;
  ICollection&lt;SomethingElse&gt; second = (ICollection&lt;SomethingElse&gt;)first;
  ICollection&lt;SomethingElse&gt; second = first.Cast&lt;SomethingElse&gt;();
  </code></pre>
  
  <p>don't work.</p>