Beispiel #1
0
        public SlimHashTable(Func <TValue, TKey> keyProvider, int capacity, IEqualityComparer <TKey> comparer, ICollectionGrowthPolicy growthPolicy)
        {
            Invariants.CheckArgumentNotNull(keyProvider, nameof(keyProvider));
            Invariants.CheckArgument(capacity >= 0, nameof(capacity), "Capacity must be positive");
            Invariants.CheckArgumentNotNull(comparer, nameof(comparer));
            Invariants.CheckArgumentNotNull(growthPolicy, nameof(growthPolicy));

            _getKey       = keyProvider;
            _capacity     = capacity;
            _comparer     = comparer;
            _growthPolicy = growthPolicy;

            var length = GetPrimeLength(capacity);

            Initialize(length);
        }
 public ConcurrentHashSet(int capacity, IEqualityComparer <T> comparer, ICollectionGrowthPolicy growthPolicy)
 {
     _table = new SlimHashTable <T, T>(t => t, capacity, comparer, growthPolicy);
 }
 public ConcurrentHashSet(int capacity, ICollectionGrowthPolicy growthPolicy)
     : this(capacity, EqualityComparer <T> .Default, growthPolicy)
 {
 }
 public ConcurrentHashSet(ICollectionGrowthPolicy growthPolicy)
     : this(0, EqualityComparer <T> .Default, growthPolicy)
 {
 }
Beispiel #5
0
 public SlimHashTable(Func <TValue, TKey> keyProvider, IEqualityComparer <TKey> comparer, ICollectionGrowthPolicy growthPolicy)
     : this(keyProvider, 0, comparer, growthPolicy)
 {
 }
Beispiel #6
0
 public SlimHashTable(Func <TValue, TKey> keyProvider, int capacity, ICollectionGrowthPolicy growthPolicy)
     : this(keyProvider, capacity, EqualityComparer <TKey> .Default, growthPolicy)
 {
 }