internal static void AddAndRemoveWhere <T>(this ListAsset <T> list, T value, Func <T, T, bool> cond) { var v = list.Where(x => cond(value, x)).ToList(); foreach (var a in v) { list.items.Remove(a); } list.items.Add(value); }
internal static void AddAndRemoveRangeWhere <T>(this ListAsset <T> list, IEnumerable <T> range, Func <T, T, bool> cond) { var listToAdd = range.ToList(); var v = list.Where(x => listToAdd.Any(y => cond(x, y))).ToList(); foreach (var a in v) { list.items.Remove(a); } list.items.AddRange(listToAdd); }