public void SourceManipulation() { var things = new SynchronizedRangeObservableCollection <object>(new object[] { 0, false, "John", DateTime.Now, "Emily", Guid.NewGuid(), "Charles", TimeSpan.Zero, new object() }); using var strings = things.ActiveOfType <string>(); void checkStrings(params string[] against) => Assert.IsTrue(strings.OrderBy(s => s).SequenceEqual(against)); checkStrings("Charles", "Emily", "John"); things.Add("Bridget"); things.Remove("John"); things.Move(things.Count - 1, 0); checkStrings("Bridget", "Charles", "Emily"); things.Reset(new object[] { new object(), TimeSpan.Zero, "George", Guid.NewGuid(), "Craig", DateTime.Now, "Cliff", false, 0 }); checkStrings("Cliff", "Craig", "George"); }