public OrderedHashSet(int capacity, IEqualityComparer <TValue> comparer = null) { if (capacity < 0) { throw new ArgumentOutOfRangeException(nameof(capacity)); } if (capacity > 0) { int newSize = HashHelpers.GetPrime(capacity); _buckets = new int[newSize]; _entries = new Entry[newSize]; _fastModMultiplier = HashHelpers.GetFastModMultiplier((uint)newSize); } if (comparer != EqualityComparer <TValue> .Default) { _comparer = comparer; } }