public void UpdateBasedOnElements() { var a = new TestElement("0", "A"); var c = new ObservableCollectionEx <TestElement> { a, new TestElement("1", "C") }; var source = new[] { new TestElement("2", "B"), new TestElement("0", "A") }; c.Update(source, te => te.Id); Assert.That(c.Count, Is.EqualTo(2)); Assert.That(c[0], Is.SameAs(source[0])); Assert.That(c[1], Is.SameAs(a)); }