Add extra constructors

This commit is contained in:
Archi
2024-02-21 13:08:32 +01:00
parent d9cdc806fe
commit f63dbffee3

View File

@@ -39,12 +39,25 @@ public sealed class ConcurrentHashSet<T> : IReadOnlySet<T>, ISet<T> where T : no
public ConcurrentHashSet() => BackingCollection = new ConcurrentDictionary<T, bool>();
public ConcurrentHashSet(IEnumerable<T> collection) {
ArgumentNullException.ThrowIfNull(collection);
BackingCollection = new ConcurrentDictionary<T, bool>(collection.Select(static item => new KeyValuePair<T, bool>(item, true)));
}
public ConcurrentHashSet(IEqualityComparer<T> comparer) {
ArgumentNullException.ThrowIfNull(comparer);
BackingCollection = new ConcurrentDictionary<T, bool>(comparer);
}
public ConcurrentHashSet(IEnumerable<T> collection, IEqualityComparer<T> comparer) {
ArgumentNullException.ThrowIfNull(collection);
ArgumentNullException.ThrowIfNull(comparer);
BackingCollection = new ConcurrentDictionary<T, bool>(collection.Select(static item => new KeyValuePair<T, bool>(item, true)), comparer);
}
public bool Add(T item) {
ArgumentNullException.ThrowIfNull(item);