It is worth noting that the list method is a lot older than the extension method. The naming was likely kept the same as Reverse
seems more succinct than BackwardsIterator
.
If you want to bypass the list version and go to the extension method, you need to treat the list like an IEnumerable<T>
:
var numbers = new List<int>();
numbers.Reverse(); // hits list
(numbers as IEnumerable<int>).Reverse(); // hits extension
Or call the extension method as a static method:
Enumerable.Reverse(numbers);
Note that the Enumerable
version will need to iterate the underlying enumerable entirely in order to start iterating it in reverse. If you plan on doing this multiple times over the same enumerable, consider permanently reversing the order and iterating it normally.