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
TThe 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
collectionIEnumerable<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
collectionIEnumerable<T>Elements to be copied to the new set.
comparerIEqualityComparer<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
comparerIEqualityComparer<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
concurrencyLevelintThe estimated number of threads that will update the set concurrently
collectionIEnumerable<T>Elements to be copied to the new set.
comparerIEqualityComparer<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
concurrencyLevelintThe estimated number of threads that will update the set concurrently
capacityintThe 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
itemTThe 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
itemTThe object to locate in the System.Collections.Generic.ICollection<T>.
Returns
- bool
true if
itemis 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
arrayT[]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.
arrayIndexintThe zero-based index in
arrayat which copying begins.
Exceptions
- ArgumentNullException
arrayis null.- ArgumentOutOfRangeException
arrayIndexis less than 0.- ArgumentException
The number of elements in the source System.Collections.Generic.ICollection<T> is greater than the available space from
arrayIndexto 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
itemTThe object to remove from the System.Collections.Generic.ICollection<T>.
Returns
- bool
true if
itemwas successfully removed from the System.Collections.Generic.ICollection<T>; otherwise, false. This method also returns false ifitemis not found in the original System.Collections.Generic.ICollection<T>.
Exceptions
- NotSupportedException
The System.Collections.Generic.ICollection<T> is read-only.