public static void RemoveWhere <T>(this IObservableCollection <T> source, Predicate <T> p) { var itemsToRemove = source.Where(t => p(t)).ToList(); source.RemoveRange(itemsToRemove); }