2 using System
.Collections
;
6 public class ReverseIterator
: IEnumerable
8 IEnumerable _enumerable
;
10 public ReverseIterator(IEnumerable enumerable
)
12 _enumerable
= enumerable
;
15 public IEnumerator
GetEnumerator()
17 return new ReverseIteratorEnumerator(_enumerable
.GetEnumerator());
20 internal class ReverseIteratorEnumerator
: IEnumerator
22 private ArrayList _list
;
25 internal ReverseIteratorEnumerator( IEnumerator enumerator
)
27 _list
= new ArrayList();
29 while(enumerator
.MoveNext())
31 _list
.Add( enumerator
.Current
);
46 if((_index
< 0) || (_index
== _list
.Count
))
47 throw new InvalidOperationException();
52 public bool MoveNext()