コード例 #1
0
        private static void CommpareAdd(ObservableCollection<Item> collection, ObservableCompositeCollection<Item> compositeCollection)
        {
            var data = CreateData();

            var stopwatch = Stopwatch.StartNew();

            var t1 = stopwatch.Elapsed;

            collection.AddRange(data.SelectMany(list => list));

            var t2 = stopwatch.Elapsed;
            compositeCollection.Content.AddRange(data);

            var t3 = stopwatch.Elapsed;

            stopwatch.Stop();

            var compositeTime = t3 - t2;
            var plainTime = t2 - t1;
            var factor = compositeTime.TotalSeconds / plainTime.TotalSeconds;

            Debug.WriteLine("composite: {0} / plain {1} = {2}", compositeTime, plainTime, factor);
            Debug.WriteLine("{0} elements.", compositeCollection.Count);

            Assert.IsTrue(factor < 2);
            Assert.IsTrue(collection.SequenceEqual(compositeCollection));
        }