Esempio n. 1
0
            private TSource[] LazyToArray()
            {
                Debug.Assert(GetCount(onlyIfCheap: true) == -1);

                var builder = new LargeArrayBuilder <TSource>(initialize: true);

                if (!_appending)
                {
                    builder.SlowAdd(_item);
                }

                builder.AddRange(_source);

                if (_appending)
                {
                    builder.SlowAdd(_item);
                }

                return(builder.ToArray());
            }
Esempio n. 2
0
        public void AddCountAndToArray(IEnumerable <T> seed)
        {
            var builder1 = new LargeArrayBuilder <T>(initialize: true);
            var builder2 = new LargeArrayBuilder <T>(initialize: true);

            int count = 0;

            foreach (T item in seed)
            {
                count++;

                builder1.Add(item);
                builder2.SlowAdd(item); // Verify SlowAdd has exactly the same effect as Add.

                Assert.Equal(count, builder1.Count);
                Assert.Equal(count, builder2.Count);

                Assert.Equal(seed.Take(count), builder1.ToArray());
                Assert.Equal(seed.Take(count), builder2.ToArray());
            }
        }