using System; using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; namespace IwbYue.Zero.Zero { public static class CollectionExtensions { public static IList RemoveAll([NotNull] this ICollection source, Func predicate) { var items = source.Where(predicate).ToList(); foreach (var item in items) { source.Remove(item); } return items; } } }