Почему в C # нет ReverseEnumerator?

Кто-нибудь знает, была ли конкретная причина или дизайнерское решение не включать обратный перечислитель в C #? Было бы так хорошо, если бы существовал эквивалент C ++ reverse_iterator , точно так же, как Enumerator является эквивалентом итератора C ++ . Коллекции, которые могут быть подвергнуты обратной итерации, просто будут реализовывать что-то вроде IReverseEnumerable, и можно будет сделать что-то вроде:

List<int>.ReverseEnumerator ritr = collection.GetReverseEnumerator();
while(rtir.MoveNext())
{
 // do stuff
}

Таким образом, вы сможете повторять списки и связанные списки таким же образом, вместо того, чтобы использовать индексатор для одной и предыдущих ссылок для другой, таким образом, достигается лучшая абстракция

17
задан RobV 17 February 2012 в 23:51
поделиться