/// <nodoc /> public ReadOnlyListEnumerator(IReadOnlyList <T> list) : this() { m_enumerator = new ReadOnlyListEnumerable <T>(list).GetEnumerator(); m_singleItem = false; m_movedNext = false; }
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()); }
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); }