score:2

Accepted answer

Why is OrderedEnumerable<string, string> not available

Because it is an "internal" impementation of the interface. There is no reason why it should be available or documented. With LINQ you should program against interfaces (IEnumerable<>, IOrderedEnumerable<>, IQueryable<>...)

If you take a look, all the LINQ methods return an internal class that derives from one of those interfaces, and often they can return instances of multiple different classes, depending on the input. For example the Enumerable.Select() can return a new SelectListIterator<TSource, TResult> or a SelectIListIterator<TSource, TResult> or a new SelectIPartitionIterator<TSource, TResult> or various other classes, depending on the type of the IEnumerable<> input.


Related Articles