示例#1
0
 /// <nodoc />
 public ReadOnlyListEnumerator(IReadOnlyList <T> list)
     : this()
 {
     m_enumerator = new ReadOnlyListEnumerable <T>(list).GetEnumerator();
     m_singleItem = false;
     m_movedNext  = false;
 }
示例#2
0
        public void test_MoveNext_throws_if_list_was_modified()
        {
            var n  = 5;
            var xs = Enumerable.Range(0, n).ToList();
            var it = new ReadOnlyListEnumerator <int>(xs);

            xs.Add(n);

            foreach (var i in Enumerable.Range(0, n))
            {
                Assert.True(it.MoveNext());
            }

            Assert.Throws <InvalidOperationException>(() => it.MoveNext());
        }
示例#3
0
        public void test_MoveNext_and_Current()
        {
            var n = 5;

            var xs = Enumerable.Range(0, n).ToArray();
            var it = new ReadOnlyListEnumerator <int>(xs);

            var i = 0;

            while (it.MoveNext())
            {
                Assert.Equal(i, it.Current);
                i++;
            }

            Assert.Equal(n, i);
        }