Кто-нибудь знает, была ли конкретная причина или дизайнерское решение не включать обратный перечислитель в C #? Было бы так хорошо, если бы существовал эквивалент C ++ reverse_iterator
, точно так же, как Enumerator является эквивалентом итератора C ++
. Коллекции, которые могут быть подвергнуты обратной итерации, просто будут реализовывать что-то вроде IReverseEnumerable, и можно будет сделать что-то вроде:
List<int>.ReverseEnumerator ritr = collection.GetReverseEnumerator();
while(rtir.MoveNext())
{
// do stuff
}
Таким образом, вы сможете повторять списки и связанные списки таким же образом, вместо того, чтобы использовать индексатор для одной и предыдущих ссылок для другой, таким образом, достигается лучшая абстракция