예제 #1
0
        public void TestRemoveAllUsingRemoveAtFromEnd()
        {
            var objects = new List <object>
            {
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
            };

            var list = new WeakList <object>();

            foreach (object o in objects)
            {
                list.Add(o);
            }

            for (int i = 0; i < objects.Count; i++)
            {
                list.RemoveAt(list.Count() - 1);
            }

            Assert.That(list.Count(), Is.Zero);
        }
        public void TestRemoveAllUsingRemoveAtFromBothSides()
        {
            var objects = new List <object>
            {
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
                new object(),
            };

            var list = new WeakList <object>();

            foreach (var o in objects)
            {
                list.Add(o);
            }

            for (int i = 0; i < objects.Count; i++)
            {
                if (i % 2 == 0)
                {
                    list.RemoveAt(0);
                }
                else
                {
                    list.RemoveAt(list.Count() - 1);
                }
            }

            Assert.That(list.Count(), Is.Zero);
        }