public void EnsureCapacity_Generic_RequestingLargerCapacity_DoesNotInvalidateEnumeration(int setLength)
        {
            SegmentedHashSet <T> set   = (SegmentedHashSet <T>)(GenericISetFactory(setLength));
            var         capacity       = set.EnsureCapacity(0);
            IEnumerator valuesEnum     = set.GetEnumerator();
            IEnumerator valuesListEnum = new List <T>(set).GetEnumerator();

            set.EnsureCapacity(capacity + 1); // Verify EnsureCapacity does not invalidate enumeration

            while (valuesEnum.MoveNext())
            {
                valuesListEnum.MoveNext();
                Assert.Equal(valuesListEnum.Current, valuesEnum.Current);
            }
        }
Ejemplo n.º 2
0
 /// <inheritdoc cref="ImmutableHashSet{T}.Enumerator.Reset()"/>
 public void Reset()
 {
     // Create a new enumerator, since _enumerator.Reset() will fail for cases where the set was mutated
     // after enumeration started, and ImmutableSegmentHashSet<T>.Builder allows for this case without error.
     _enumerator = _set.GetEnumerator();
 }
Ejemplo n.º 3
0
 internal Enumerator(SegmentedHashSet <T> set)
 {
     _set        = set;
     _enumerator = set.GetEnumerator();
 }