title: Why is there no ReverseEnumerator in C#?
body: <p>Does anyone know if there was a specific reason or design decision to not include a reverse enumerator in C#? It would be so nice if there was an equivalent to the C++ <code>reverse_iterator</code> just like Enumerator is the equivalent of the C++ <code>iterator</code>. Collections that can be reverse-iterated would just implement something like IReverseEnumerable and one could do something like:</p>
  
  <pre><code>List&lt;int&gt;.ReverseEnumerator ritr = collection.GetReverseEnumerator();
  while(rtir.MoveNext())
  {
   // do stuff
  }
  </code></pre>
  
  <p>This way, you would be able to iterate Lists and LinkedLists in the same way rather than using indexer for one and previous links for the other thus achieving better abstraction</p>