Struct UnsafeList<T> | Collections | 0.6.0-preview.9
docs.unity3d.com
    Show / Hide Table of Contents

    Struct UnsafeList<T>

    An managed, resizable list, without any thread safety check features.

    Namespace: Unity.Collections.LowLevel.Unsafe
    Syntax
    public struct UnsafeList<T> : IDisposable where T : struct
    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 container is allocated.

    Declaration
    public bool IsCreated { get; }
    Property Value
    Type Description
    Boolean

    True if this container object's internal storage has been allocated.

    Remarks

    Note that the container storage is not created if you use the default constructor. You must specify at least an allocation type to construct a usable container.

    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.

    AddNoResize(T)

    Adds an element to the container.

    Declaration
    public void AddNoResize(T value)
    Parameters
    Type Name Description
    T value

    The value to be added at the end of the container.

    Remarks

    If the list has reached its current capacity, internal array won't be resized, and exception will be thrown.

    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

    AddRangeNoResize(Void*, Int32)

    Adds the elements to this container.

    Declaration
    public void AddRangeNoResize(void *ptr, int length)
    Parameters
    Type Name Description
    Void* ptr

    A pointer to the buffer.

    Int32 length

    The number of elements to add to the container.

    Remarks

    If the list has reached its current capacity, internal array won't be resized, and exception will be thrown.

    AddRangeNoResize(UnsafeList<T>)

    Adds elements from a list to this container.

    Declaration
    public void AddRangeNoResize(UnsafeList<T> list)
    Parameters
    Type Name Description
    UnsafeList<T> list

    Other container to copy elements from.

    Remarks

    If the list has reached its current capacity, internal array won't be resized, and exception will be thrown.

    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 container.

    Declaration
    public void Clear()
    Remarks

    List Capacity remains unchanged.

    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

    The job handle or handles for any scheduled jobs that use this container.

    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.

    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()

    Extension Methods

    JobNativeMultiHashMapVisitKeyValue.Schedule<TJob, TKey, TValue>(TJob, NativeMultiHashMap<TKey, TValue>, Int32, JobHandle)
    JobNativeMultiHashMapVisitKeyMutableValue.Schedule<TJob, TKey, TValue>(TJob, NativeMultiHashMap<TKey, TValue>, Int32, JobHandle)
    JobUnsafeMultiHashMapVisitKeyValue.Schedule<TJob, TKey, TValue>(TJob, UnsafeMultiHashMap<TKey, TValue>, Int32, JobHandle)
    JobUnsafeMultiHashMapVisitKeyMutableValue.Schedule<TJob, TKey, TValue>(TJob, UnsafeMultiHashMap<TKey, TValue>, Int32, JobHandle)
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023