public void UnionWith(IEnumerable <T> other) { var comp = new RuleSetInternalEqualityComparer(); foreach (var deletR in other.Select(r => new KeyValuePair <string, T>(r.Tag, r)).Except(_rules, comp)) { _rules.TryRemove(deletR.Key, out _); } }
public void SymmetricExceptWith(IEnumerable <T> other) { var comp = new RuleSetInternalEqualityComparer(); foreach (var item in other.Distinct(comp)) { if (!_rules.TryRemove(item.Tag, out _)) { _rules.GetOrAdd(item.Tag, item); } } }