Пример #1
0
        private int CalculateHashCode(IEqualityComparer /*!*/ comparer)
        {
            Assert.NotNull(comparer);

            HashCache curHashCache = _hashCache;

            if (curHashCache != null && object.ReferenceEquals(comparer, curHashCache.Comparer))
            {
                return(curHashCache.HashCode);
            }

            int hash = SetStorage.GetHashCode(_items, comparer);

            _hashCache = new HashCache(hash, comparer);
            return(hash);
        }