public void RemoveRangeTest() { ObservableCollectionExt <TestClass> collection = new ObservableCollectionExt <TestClass>(); var obj1 = new TestClass { Id = 1, Value = "one" }; var obj2 = new TestClass { Id = 2, Value = "two" }; var obj3 = new TestClass { Id = 3, Value = "three" }; var obj4 = new TestClass { Id = 4, Value = "four" }; collection.AddRange(new List <TestClass> { obj1, obj2, obj3, obj4 }); int counter = 0; collection.CollectionChanged += (s, e) => counter++; collection.RemoveItems(new List <TestClass> { obj2, obj4 }); Assert.AreEqual(1, counter); Assert.AreEqual(2, collection.Count); Assert.AreEqual(1, collection[0].Id); Assert.AreEqual(3, collection[1].Id); }