Struct ReadOnlyArray<TValue> | Input System | 1.0.2
docs.unity3d.com
    Show / Hide Table of Contents

    Struct ReadOnlyArray<TValue>

    Read-only access to an array or to a slice of an array.

    Inherited Members
    ValueType.Equals(Object)
    ValueType.GetHashCode()
    ValueType.ToString()
    Namespace: UnityEngine.InputSystem.Utilities
    Syntax
    public struct ReadOnlyArray<TValue> : IReadOnlyList<TValue>
    Type Parameters
    Name Description
    TValue

    Type of values stored in the array.

    Remarks

    The purpose of this struct is to allow exposing internal arrays directly such that no boxing and no going through interfaces is required but at the same time not allowing the internal arrays to be modified.

    It differs from ReadOnlySpan<T> in that it can be stored on the heap and differs from ReadOnlyCollection<T> in that it supports slices directly without needing an intermediate object representing the slice.

    Note that in most cases, the ReadOnlyArray instance should be treated as a temporary. The actual array referred to by a ReadOnlyArray instance is usually owned and probably mutated by another piece of code. When that code makes changes to the array, the ReadOnlyArray instance will not get updated.

    Constructors

    ReadOnlyArray(TValue[])

    Construct a read-only array covering all of the given array.

    Declaration
    public ReadOnlyArray(TValue[] array)
    Parameters
    Type Name Description
    TValue[] array

    Array to index.

    ReadOnlyArray(TValue[], Int32, Int32)

    Construct a read-only array that covers only the given slice of array.

    Declaration
    public ReadOnlyArray(TValue[] array, int index, int length)
    Parameters
    Type Name Description
    TValue[] array

    Array to index.

    Int32 index

    Index at which to start indexing array. The given element becomes index #0 for the read-only array.

    Int32 length

    Length of the slice to index from array.

    Properties

    Count

    Number of elements in the array.

    Declaration
    public int Count { get; }
    Property Value
    Type Description
    Int32

    Item[Int32]

    Return the element at the given index.

    Declaration
    public TValue this[int index] { get; }
    Parameters
    Type Name Description
    Int32 index

    Index into the array.

    Property Value
    Type Description
    TValue
    Exceptions
    Type Condition
    IndexOutOfRangeException

    index is less than 0 or greater than Count.

    InvalidOperationException

    Methods

    GetEnumerator()

    Declaration
    public IEnumerator<TValue> GetEnumerator()
    Returns
    Type Description
    IEnumerator<TValue>

    IndexOf(Predicate<TValue>)

    Declaration
    public int IndexOf(Predicate<TValue> predicate)
    Parameters
    Type Name Description
    Predicate<TValue> predicate
    Returns
    Type Description
    Int32

    ToArray()

    Convert to array.

    Declaration
    public TValue[] ToArray()
    Returns
    Type Description
    TValue[]

    A new array containing a copy of the contents of the read-only array.

    Operators

    Implicit(TValue[] to ReadOnlyArray<TValue>)

    Declaration
    public static implicit operator ReadOnlyArray<TValue>(TValue[] array)
    Parameters
    Type Name Description
    TValue[] array
    Returns
    Type Description
    ReadOnlyArray<TValue>

    Explicit Interface Implementations

    IEnumerable.GetEnumerator()

    Declaration
    IEnumerator IEnumerable.GetEnumerator()
    Returns
    Type Description
    IEnumerator
    In This Article
    • Constructors
      • ReadOnlyArray(TValue[])
      • ReadOnlyArray(TValue[], Int32, Int32)
    • Properties
      • Count
      • Item[Int32]
    • Methods
      • GetEnumerator()
      • IndexOf(Predicate<TValue>)
      • ToArray()
    • Operators
      • Implicit(TValue[] to ReadOnlyArray<TValue>)
    • Explicit Interface Implementations
      • IEnumerable.GetEnumerator()
    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