public void WeakCollectionFromEnumerable()
        {
            var items = Enumerable.Range(0, 10).Select(x => x.ToString(CultureInfo.InvariantCulture)).ToArray();
            var wc    = new WeakCollection <string>(items);

            Assert.Equal(10, wc.CapCount);
            Assert.Equal(10, wc.Count);
            Assert.True(wc.SequenceEqual(items));
        }
        public void RemoveWorksAfterCollect()
        {
            var arr = new[] { "a", "b" };
            var wc  = new WeakCollection <string>(arr);

            {
                wc.Add(new string('c', 1));
                wc.Add(new string('d', 1));
                wc.Add(new string('c', 1));
            }
            GCEx.CollectAndWait();
            Assert.False(wc.Remove("c"));
            Assert.False(wc.Remove("d"));
            Assert.True(wc.SequenceEqual(new[] { "a", "b" }));
        }