Class ConcurrentSet<T>
- Namespace
- NanoByte.Common.Collections
- Assembly
- NanoByte.Common.dll
Represents a thread-safe set of values.
public class ConcurrentSet<T> where T : notnull
Type Parameters
T
The type of the values in the set.
- Inheritance
-
ConcurrentSet<T>
- Extension Methods
Remarks
This class is thread-safe.
Constructors
ConcurrentSet()
Creates a new concurrent set.
public ConcurrentSet()
ConcurrentSet(IEnumerable<T>)
Creates a new concurrent set.
public ConcurrentSet(IEnumerable<T> collection)
Parameters
collection
IEnumerable<T>Elements to be copied to the new set.
ConcurrentSet(IEnumerable<T>, IEqualityComparer<T>)
Creates a new concurrent set.
public ConcurrentSet(IEnumerable<T> collection, IEqualityComparer<T> comparer)
Parameters
collection
IEnumerable<T>Elements to be copied to the new set.
comparer
IEqualityComparer<T>The IEqualityComparer<T> implementation to use when comparing elements.
ConcurrentSet(IEqualityComparer<T>)
Creates a new concurrent set.
public ConcurrentSet(IEqualityComparer<T> comparer)
Parameters
comparer
IEqualityComparer<T>The IEqualityComparer<T> implementation to use when comparing elements.
ConcurrentSet(int, IEnumerable<T>, IEqualityComparer<T>)
Creates a new concurrent set.
public ConcurrentSet(int concurrencyLevel, IEnumerable<T> collection, IEqualityComparer<T> comparer)
Parameters
concurrencyLevel
intThe estimated number of threads that will update the set concurrently
collection
IEnumerable<T>Elements to be copied to the new set.
comparer
IEqualityComparer<T>The IEqualityComparer<T> implementation to use when comparing values.
ConcurrentSet(int, int)
Creates a new concurrent set.
public ConcurrentSet(int concurrencyLevel, int capacity)
Parameters
concurrencyLevel
intThe estimated number of threads that will update the set concurrently
capacity
intThe initial number of elements that the set can contain.
Properties
Count
Gets the number of elements contained in the ICollection<T>.
public int Count { get; }
Property Value
- int
The number of elements contained in the ICollection<T>.
IsReadOnly
Gets a value indicating whether the ICollection<T> is read-only.
public bool IsReadOnly { get; }
Property Value
- bool
true if the ICollection<T> is read-only; otherwise, false.
Methods
Add(T)
Adds an item to the ICollection<T>.
public void Add(T item)
Parameters
item
TThe object to add to the ICollection<T>.
Exceptions
- NotSupportedException
The ICollection<T> is read-only.
Clear()
Removes all items from the ICollection<T>.
public void Clear()
Exceptions
- NotSupportedException
The ICollection<T> is read-only.
Contains(T)
Determines whether the ICollection<T> contains a specific value.
public bool Contains(T item)
Parameters
item
TThe object to locate in the ICollection<T>.
Returns
- bool
true if
item
is found in the ICollection<T>; otherwise, false.
CopyTo(T[], int)
Copies the elements of the ICollection<T> to an Array, starting at a particular Array index.
public void CopyTo(T[] array, int arrayIndex)
Parameters
array
T[]The one-dimensional Array that is the destination of the elements copied from ICollection<T>. The Array must have zero-based indexing.
arrayIndex
intThe zero-based index in
array
at which copying begins.
Exceptions
- ArgumentNullException
array
is null.- ArgumentOutOfRangeException
arrayIndex
is less than 0.- ArgumentException
The number of elements in the source ICollection<T> is greater than the available space from
arrayIndex
to the end of the destinationarray
.
GetEnumerator()
Returns an enumerator that iterates through a collection.
[MustDisposeResource]
public IEnumerator GetEnumerator()
Returns
- IEnumerator
An IEnumerator object that can be used to iterate through the collection.
Remove(T)
Removes the first occurrence of a specific object from the ICollection<T>.
public bool Remove(T item)
Parameters
item
TThe object to remove from the ICollection<T>.
Returns
- bool
true if
item
was successfully removed from the ICollection<T>; otherwise, false. This method also returns false ifitem
is not found in the original ICollection<T>.
Exceptions
- NotSupportedException
The ICollection<T> is read-only.