public AlphabeticalOrderIterator(WordsCollection collection, bool reserve = false)
        {
            _collection = collection;
            _reserve    = reserve;

            if (reserve)
            {
                _position = collection.GetItems().Count - 1;
            }
        }
        public AlphabeticalOrderIterator(WordsCollection collection, bool reverse)
        {
            _collection = collection;
            _reverse    = reverse;

            if (reverse)
            {
                _position = collection.GetItems().Count;
            }
        }
Ejemplo n.º 3
0
        public void Test_words()
        {
            var collection = new WordsCollection();

            collection.AddItem("Tuan");
            collection.AddItem("Hello");
            collection.AddItem("First");

            Assert.That(collection.GetItems().Count == 3);

            {
                var iterator = collection.GetEnumerator();

                Assert.That(iterator.Current, Is.EqualTo("Tuan"));

                iterator.MoveNext(); Assert.That(iterator.Current, Is.EqualTo("Hello"));
                iterator.MoveNext(); Assert.That(iterator.Current, Is.EqualTo("First"));

                iterator.Reset(); Assert.That(iterator.Current, Is.EqualTo("Tuan"));
                iterator.MoveNext();
                iterator.MoveNext();
                Assert.That(iterator.Current, Is.EqualTo("First"));
            }

            collection.ReserveDirection();
            {
                var iterator = collection.GetEnumerator();

                Assert.That(iterator.Current, Is.EqualTo("First"));

                iterator.MoveNext(); Assert.That(iterator.Current, Is.EqualTo("Hello"));
                iterator.MoveNext(); Assert.That(iterator.Current, Is.EqualTo("Tuan"));

                iterator.Reset(); Assert.That(iterator.Current, Is.EqualTo("First"));
                iterator.MoveNext();
                iterator.MoveNext();
                Assert.That(iterator.Current, Is.EqualTo("Tuan"));
            }
        }
 public override object Current()
 {
     return(_collection.GetItems()[_position]);
 }