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
-
objectConcurrentSet<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 System.Collections.Generic.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 System.Collections.Generic.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 System.Collections.Generic.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 System.Collections.Generic.ICollection<T>.
public int Count { get; }
Property Value
- int
The number of elements contained in the System.Collections.Generic.ICollection<T>.
IsReadOnly
Gets a value indicating whether the System.Collections.Generic.ICollection<T> is read-only.
public bool IsReadOnly { get; }
Property Value
- bool
true if the System.Collections.Generic.ICollection<T> is read-only; otherwise, false.
Methods
Add(T)
Adds an item to the System.Collections.Generic.ICollection<T>.
public void Add(T item)
Parameters
item
TThe object to add to the System.Collections.Generic.ICollection<T>.
Exceptions
- NotSupportedException
The System.Collections.Generic.ICollection<T> is read-only.
Clear()
Removes all items from the System.Collections.Generic.ICollection<T>.
public void Clear()
Exceptions
- NotSupportedException
The System.Collections.Generic.ICollection<T> is read-only.
Contains(T)
Determines whether the System.Collections.Generic.ICollection<T> contains a specific value.
public bool Contains(T item)
Parameters
item
TThe object to locate in the System.Collections.Generic.ICollection<T>.
Returns
- bool
true if
item
is found in the System.Collections.Generic.ICollection<T>; otherwise, false.
CopyTo(T[], int)
Copies the elements of the System.Collections.Generic.ICollection<T> to an System.Array, starting at a particular System.Array index.
public void CopyTo(T[] array, int arrayIndex)
Parameters
array
T[]The one-dimensional System.Array that is the destination of the elements copied from System.Collections.Generic.ICollection<T>. The System.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 System.Collections.Generic.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 System.Collections.IEnumerator object that can be used to iterate through the collection.
Remove(T)
Removes the first occurrence of a specific object from the System.Collections.Generic.ICollection<T>.
public bool Remove(T item)
Parameters
item
TThe object to remove from the System.Collections.Generic.ICollection<T>.
Returns
- bool
true if
item
was successfully removed from the System.Collections.Generic.ICollection<T>; otherwise, false. This method also returns false ifitem
is not found in the original System.Collections.Generic.ICollection<T>.
Exceptions
- NotSupportedException
The System.Collections.Generic.ICollection<T> is read-only.