List to IEnumerable with parent and child class
<p>Given the following classes:</p>

<pre><code>public class ContentItem : IEquatable&lt;ContentItem&gt;
{
...
}
</code></pre>

<p>and</p>

<pre><code>public class Widget : ContentItem, IWidget
{
...
}
</code></pre>

<p>why I can't do this:</p>

<pre><code>List&lt;Widget&gt; widgets = _repository.GetItems(widgetType);
</code></pre>

<p>where</p>

<p><code>_repository.GetItems(widgetType)</code> returns <code>IEnumerable&lt;ContentItem&gt;</code>?</p>

<p>Essentially I already have a repository implementation which works on <code>ContentItem</code> class and I would like to use that same repository also for working with <code>Widget</code> class basically because Widget has the same base properties and only introduces few new ones that just hold some information (they come from <code>IWidget</code> interface) and don't have any impact on how repository should handle the class). I don't want to make another repository class just to replace all occurences of <code>ContentItem</code> with <code>Widget</code>.</p>

<p>Should I make my changes by explicitly specifing casts or changing my repository (or repository interface, which I also have)? If possible, I would like to avoid various constructs such as AsEnumerable(), ToList() or explicit casts.</p>
