public void GetEnumeratorUntyped()
        {
            var enumerable = new OneTwoThreeEnumerable();

            // Get untyped enumerator from IEnumerable interface.
            var enumerator = ((IEnumerable)enumerable).GetEnumerator();

            for (var i = 1; i <= 3; i++)
            {
                Assert.IsTrue(enumerator.MoveNext());
                Assert.AreEqual(i, enumerator.Current);
            }
            Assert.IsFalse(enumerator.MoveNext());
            Assert.IsFalse(enumerator.MoveNext());
        }
        public void GetEnumeratorTyped()
        {
            var enumerable = new OneTwoThreeEnumerable();

            // Get typed enumerator from IEnumerable<T> inerface.
            using (var enumerator = enumerable.GetEnumerator())
            {
                for (var i = 1; i <= 3; i++)
                {
                    Assert.IsTrue(enumerator.MoveNext());
                    Assert.AreEqual(i, enumerator.Current);
                }
                Assert.IsFalse(enumerator.MoveNext());
                Assert.IsFalse(enumerator.MoveNext());
            }
        }