private static void UsingObservableImpl() { var a = new ObservableImpl<string>(); a.Where(item => item is ObservableImpl<string>.ItemAdded) .Subscribe(item => Console.WriteLine("Added: " + item)); a.Where(item => item is ObservableImpl<string>.ItemRemoved) .Subscribe(item => Console.WriteLine("Removed: " + item)); a.Add("a"); a.Add("b"); a.Add("c"); a.Add("d"); a.Add("e"); a.Add("f"); }