private void RecycleDomain(VarDomain domain) { foreach (var set in domain.Values) { set.Clear(); ObjectPool <HashSet <Name> > .Recycle(set); } domain.Clear(); ObjectPool <Dictionary <Name, HashSet <Name> > > .Recycle(domain); }
private bool CompareDomains(VarDomain oldDomain, VarDomain newDomain) { foreach (var o in oldDomain) { HashSet <Name> domain; if (!newDomain.TryGetValue(o.Key, out domain)) { return(false); } if (o.Value.Count != domain.Count) { return(false); } } return(true); }