Struct NativeHashSet<T>
An unordered, expandable set of unique values.
Implements
Namespace: Unity.Collections
Assembly: Unity.Collections.dll
Syntax
[NativeContainer]
public struct NativeHashSet<T> : INativeDisposable where T : unmanaged, IEquatable<T>
Type Parameters
Name | Description |
---|---|
T | The type of the values. |
Remarks
Not suitable for parallel write access. Use NativeParallelHashSet<T> instead.
Constructors
NativeHashSet(int, AllocatorHandle)
Initializes and returns an instance of NativeParallelHashSet.
Declaration
public NativeHashSet(int initialCapacity, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
int | initialCapacity | The number of values that should fit in the initial allocation. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
Properties
Capacity
The number of values that fit in the current allocation.
Declaration
public int Capacity { readonly get; set; }
Property Value
Type | Description |
---|---|
int | The number of values that fit in the current allocation. |
Count
Returns the current number of values in this set.
Declaration
public readonly int Count { get; }
Property Value
Type | Description |
---|---|
int | The current number of values in this set. |
IsCreated
Whether this set has been allocated (and not yet deallocated).
Declaration
public readonly bool IsCreated { get; }
Property Value
Type | Description |
---|---|
bool | True if this set has been allocated (and not yet deallocated). |
IsEmpty
Whether this set is empty.
Declaration
public readonly bool IsEmpty { get; }
Property Value
Type | Description |
---|---|
bool | True if this set is empty or if the set has not been constructed. |
Methods
Add(T)
Adds a new value (unless it is already present).
Declaration
public bool Add(T item)
Parameters
Type | Name | Description |
---|---|---|
T | item | The value to add. |
Returns
Type | Description |
---|---|
bool | True if the value was not already present. |
AsReadOnly()
Returns a readonly version of this NativeHashSet instance.
Declaration
public NativeHashSet<T>.ReadOnly AsReadOnly()
Returns
Type | Description |
---|---|
NativeHashSet<T>.ReadOnly | ReadOnly instance for this. |
Remarks
ReadOnly containers point to the same underlying data as the NativeHashSet it is made from.
Clear()
Removes all values.
Declaration
public void Clear()
Remarks
Does not change the capacity.
Contains(T)
Returns true if a particular value is present.
Declaration
public bool Contains(T item)
Parameters
Type | Name | Description |
---|---|---|
T | item | The item to look up. |
Returns
Type | Description |
---|---|
bool | True if the value was present. |
Dispose()
Releases all resources (memory and safety handles).
Declaration
public void Dispose()
Dispose(JobHandle)
Creates and schedules a job that will dispose this set.
Declaration
public JobHandle Dispose(JobHandle inputDeps)
Parameters
Type | Name | Description |
---|---|---|
JobHandle | inputDeps | A job handle. The newly scheduled job will depend upon this handle. |
Returns
Type | Description |
---|---|
JobHandle | The handle of a new job that will dispose this set. |
GetEnumerator()
Returns an enumerator over the values of this set.
Declaration
public NativeHashSet<T>.Enumerator GetEnumerator()
Returns
Type | Description |
---|---|
NativeHashSet<T>.Enumerator | An enumerator over the values of this set. |
Remove(T)
Removes a particular value.
Declaration
public bool Remove(T item)
Parameters
Type | Name | Description |
---|---|---|
T | item | The value to remove. |
Returns
Type | Description |
---|---|
bool | True if the value was present. |
ToNativeArray(AllocatorHandle)
Returns an array with a copy of this set's values (in no particular order).
Declaration
public NativeArray<T> ToNativeArray(AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
Returns
Type | Description |
---|---|
NativeArray<T> | An array with a copy of the set's values. |
TrimExcess()
Sets the capacity to match what it would be if it had been originally initialized with all its entries.
Declaration
public void TrimExcess()