Struct UnsafeList<T>
An managed, resizable list, without any thread safety check features.
Namespace: Unity.Collections.LowLevel.Unsafe
Syntax
public struct UnsafeList<T>
where T : struct, IEquatable<T>
Type Parameters
| Name | Description |
|---|---|
| T | Source type of elements |
Constructors
UnsafeList(T*, Int32)
Constructs list as view into memory.
Declaration
public UnsafeList(T*ptr, int length)
Parameters
| Type | Name | Description |
|---|---|---|
| T* | ptr | |
| Int32 | length |
UnsafeList(Int32, Allocator, NativeArrayOptions)
Constructs a new list using the specified type of memory allocation.
Declaration
public UnsafeList(int initialCapacity, Allocator allocator, NativeArrayOptions options = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | initialCapacity | |
| Allocator | allocator | A member of the Unity.Collections.Allocator enumeration. |
| NativeArrayOptions | options | Memory should be cleared on allocation or left uninitialized. |
Remarks
The list initially has a capacity of one. To avoid reallocating memory for the list, specify sufficient capacity up front.
Fields
Allocator
Declaration
public Allocator Allocator
Field Value
| Type | Description |
|---|---|
| Allocator |
Capacity
Declaration
public int Capacity
Field Value
| Type | Description |
|---|---|
| Int32 |
Length
Declaration
public int Length
Field Value
| Type | Description |
|---|---|
| Int32 |
Ptr
Declaration
public T*Ptr
Field Value
| Type | Description |
|---|---|
| T* |
Properties
IsCreated
Reports whether memory for the list is allocated.
Declaration
public bool IsCreated { get; }
Property Value
| Type | Description |
|---|---|
| Boolean | True if this list object's internal storage has been allocated. |
Remarks
Note that the list storage is not created if you use the default constructor. You must specify at least an allocation type to construct a usable UnsafeList.
Methods
Add(T)
Adds an element to the list.
Declaration
public void Add(T value)
Parameters
| Type | Name | Description |
|---|---|---|
| T | value | The struct to be added at the end of the list. |
AddRange(UnsafeList<T>)
Adds the elements of a UnsafePtrList to this list.
Declaration
public void AddRange(UnsafeList<T> src)
Parameters
| Type | Name | Description |
|---|---|---|
| UnsafeList<T> | src |
AsParallelReader()
Returns parallel reader instance.
Declaration
public UnsafeList<T>.ParallelReader AsParallelReader()
Returns
| Type | Description |
|---|---|
| UnsafeList.ParallelReader<> |
AsParallelWriter()
Declaration
public UnsafeList<T>.ParallelWriter AsParallelWriter()
Returns
| Type | Description |
|---|---|
| UnsafeList.ParallelWriter<> |
Clear()
Clears the list.
Declaration
public void Clear()
Remarks
List Capacity remains unchanged.
Contains(T)
Determines whether an element is in the list.
Declaration
public bool Contains(T value)
Parameters
| Type | Name | Description |
|---|---|---|
| T | value |
Returns
| Type | Description |
|---|---|
| Boolean | True, if element is found. |
Dispose()
Disposes of this container and deallocates its memory immediately.
Declaration
public void Dispose()
Dispose(JobHandle)
Safely disposes of this container and deallocates its memory when the jobs that use it have completed.
Declaration
public JobHandle Dispose(JobHandle inputDeps)
Parameters
| Type | Name | Description |
|---|---|---|
| JobHandle | inputDeps |
Returns
| Type | Description |
|---|---|
| JobHandle | A new job handle containing the prior handles as well as the handle for the job that deletes the container. |
Remarks
You can call this function dispose of the container immediately after scheduling the job. Pass
the JobHandle returned by
the Job.Schedule
method using the jobHandle parameter so the job scheduler can dispose the container after all jobs
using it have run.
IndexOf(T)
Searches for the specified element in list.
Declaration
public int IndexOf(T value)
Parameters
| Type | Name | Description |
|---|---|---|
| T | value |
Returns
| Type | Description |
|---|---|
| Int32 | The zero-based index of the first occurrence element if found, otherwise returns -1. |
RemoveAtSwapBack(Int32)
Truncates the list by replacing the item at the specified index with the last item in the list. The list is shortened by one.
Declaration
public void RemoveAtSwapBack(int index)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | index | The index of the item to delete. |
Resize(Int32, NativeArrayOptions)
Changes the list length, resizing if necessary.
Declaration
public void Resize(int length, NativeArrayOptions options = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | length | The new length of the list. |
| NativeArrayOptions | options | Memory should be cleared on allocation or left uninitialized. |
SetCapacity(Int32)
Set the number of items that can fit in the list.
Declaration
public void SetCapacity(int capacity)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | capacity | The number of items that the list can hold before it resizes its internal storage. |
TrimExcess()
Sets the capacity to the actual number of elements in the container.
Declaration
public void TrimExcess()