public void Test001() { MyObservableList <string> people = new MyObservableList <string>() { "Andrew", "Lei", "Matt" }; MyObservableList <string> filteredPeople = people.Sublist(i => i.StartsWith("a", StringComparison.CurrentCultureIgnoreCase), SublistSortOption.SameAsParentList); AssertListsEqual(new string[] { "Andrew" }, filteredPeople); people.Add("Adam"); /// Andrew /// Lei /// Matt /// Adam AssertListsEqual(new string[] { "Andrew", "Adam" }, filteredPeople); people.Insert(0, "Andrea"); /// Andrea /// Andrew /// Lei /// Matt /// Adam AssertListsEqual(new string[] { "Andrea", "Andrew", "Adam" }, filteredPeople); people.Insert(3, "Austin"); /// Andrea /// Andrew /// Lei /// Austin /// Matt /// Adam AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople); people.RemoveAt(2); /// Andrea /// Andrew /// Austin /// Matt /// Adam AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople); people.Insert(2, "Thomas"); /// Andrea /// Andrew /// Thomas /// Austin /// Matt /// Adam AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople); people.Insert(0, "Frank"); /// Frank /// Andrea /// Andrew /// Thomas /// Austin /// Matt /// Adam AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople); people.Add("Steve"); /// Frank /// Andrea /// Andrew /// Thomas /// Austin /// Matt /// Adam /// Steve AssertListsEqual(new string[] { "Andrea", "Andrew", "Austin", "Adam" }, filteredPeople); people.RemoveAt(1); /// Frank /// Andrew /// Thomas /// Austin /// Matt /// Adam /// Steve AssertListsEqual(new string[] { "Andrew", "Austin", "Adam" }, filteredPeople); people.RemoveAt(3); /// Frank /// Andrew /// Thomas /// Matt /// Adam /// Steve AssertListsEqual(new string[] { "Andrew", "Adam" }, filteredPeople); people.Clear(); AssertListsEqual(new string[0], filteredPeople); }