title: Why does List<T> not implement IOrderedEnumerable<T>?
body: <p><strong>I would like to work with ordered enumerables, and use interfaces as return types rather than the concrete types.</strong> I need to return an ordered set of objects. But, when using an <code>IList&lt;T&gt;</code> implementation <strong>I can not return <code>IOrderedEnumerable&lt;T&gt;</code>, as <code>IList&lt;T&gt;</code> does not inherit <code>IOrderedEnumerable&lt;T&gt;</code></strong>.
  <br>
  <br>In the <strong>example</strong> below I have a view model with a repository of series, implemented as a <code>List&lt;T&gt;</code> of series objects, which are, as they are residing in a <code>List&lt;T&gt;</code>, ordered. I an accessor method, I want to return a filtered set of the series where only series objects of a specific type are returned, while keeping the original order among the filtered elements.</p>
  
  <pre><code>/// &lt;summary&gt;
  /// Represents the view model for this module.
  /// &lt;/summary&gt;
  public class ViewModel : AbstractViewModel
  {
      /// &lt;summary&gt;
      /// Gets the series repository.
      /// &lt;/summary&gt;
      /// &lt;value&gt;The series repository.&lt;/value&gt;
      public IList&lt;ISeries&gt; SeriesRepository { get; private set; }
  
      //...
  }
  
  //8&lt;-----------------------------
  
      /// &lt;summary&gt;
      /// Gets the series of the specified type.
      /// &lt;/summary&gt;
      public IOrderedEnumerable&lt;T&gt; Series&lt;T&gt;() where T : ISeries
      {
          return ViewModel.SeriesRepository.OfType&lt;T&gt;(); //compiler ERROR
      }
  </code></pre>
  
  <p>The compiler tells me:</p>
  
  <pre><code>Error   14  Cannot implicitly convert type 'System.Collections.Generic.IEnumerable&lt;T&gt;' to 'System.Linq.IOrderedEnumerable&lt;T&gt;'. An explicit conversion exists (are you missing a cast?) ...
  </code></pre>
  
  <p><strong>How can I support such a scenario? And why does List not implement IOrderedEnumerable?</strong></p>
  
  <p><strong>EDIT</strong>: To clarify my intentions: I simply want to declare at the interface level, that my Repository has an order, even if it is not explicitly specified by a key. 
  Thus, <code>.ThenBy</code> et.al. should not add a new order, as there is already one - my own one and only one. :-). I see, that like so, I miss the intention of <code>.ThenBy</code>.</p>