internal AppendEnumerator(AppendEnumerable <T> enumerable)
 {
     this.enumerable = enumerable;
     restEnum        = enumerable.rest.GetEnumerator();
     state           = 0;
     Current         = default;
 }
        public void AppendEnumerableExample()
        {
            // Append the following two lists
            int[] one2three = new int[] { 1, 2, 3 };
            int[] four2six = new int[] { 4, 5, 6 };

            IEnumerable<int> appended = new AppendEnumerable<int>(one2three, four2six);

            // Writes: 1, 2, 3, 4, 5, 6
            Console.WriteLine(EnumerableUtilities.JoinEnumerator(", ", appended));
        }
        public void TestAppendEnumerable()
        {
            int[] odds = new int[] { 3, 5, 7 };
            int[] evens = new int[] { 2, 4, 6 };

            IEnumerable<int> nums = new AppendEnumerable<int>(odds, evens);

            // Find the minimum, maximum, and length
            int min = 10, max = 1, len = 0;
            foreach (int num in nums)
            {
                min = Math.Min(min, num);
                max = Math.Max(max, num);
                len++;
            }

            Assert.AreEqual(6, len);
            Assert.AreEqual(2, min);
            Assert.AreEqual(7, max);
        }