Search Results for

    Show / Hide Table of Contents

    Struct SingleOrArray<T>

    • Holds either a single T or many T values without boxing.
    • Avoids allocations for the single case (no implicit single-to-array creation).
    • Implements IReadOnlyList for predictable access.
    Implements
    IReadOnlyList<T>
    IReadOnlyCollection<T>
    IEnumerable<T>
    IEnumerable
    Inherited Members
    ValueType.Equals(object)
    ValueType.GetHashCode()
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: Glitch9.IO.Networking
    Assembly: Glitch9.IO.dll
    Syntax
    public readonly struct SingleOrArray<T> : IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable
    Type Parameters
    Name Description
    T

    Constructors

    | Edit this page View Source

    SingleOrArray(T)

    Declaration
    public SingleOrArray(T single)
    Parameters
    Type Name Description
    T single
    | Edit this page View Source

    SingleOrArray(T[])

    Declaration
    public SingleOrArray(T[] array)
    Parameters
    Type Name Description
    T[] array

    Properties

    | Edit this page View Source

    Array

    Declaration
    public T[] Array { get; }
    Property Value
    Type Description
    T[]
    | Edit this page View Source

    Count

    Declaration
    public int Count { get; }
    Property Value
    Type Description
    int
    | Edit this page View Source

    IsArray

    Declaration
    public bool IsArray { get; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    IsNone

    Declaration
    public bool IsNone { get; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    IsSingle

    Declaration
    public bool IsSingle { get; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    this[int]

    Declaration
    public T this[int index] { get; }
    Parameters
    Type Name Description
    int index
    Property Value
    Type Description
    T
    | Edit this page View Source

    Single

    Declaration
    public T Single { get; }
    Property Value
    Type Description
    T

    Methods

    | Edit this page View Source

    Cast<T1, T2>(SingleOrArray<T1>)

    Declaration
    public static SingleOrArray<T2> Cast<T1, T2>(SingleOrArray<T1> source) where T1 : T2
    Parameters
    Type Name Description
    SingleOrArray<T1> source
    Returns
    Type Description
    SingleOrArray<T2>
    Type Parameters
    Name Description
    T1
    T2
    | Edit this page View Source

    CopyAndAdd(T)

    Declaration
    public SingleOrArray<T> CopyAndAdd(T item)
    Parameters
    Type Name Description
    T item
    Returns
    Type Description
    SingleOrArray<T>
    | Edit this page View Source

    CopyTo(Span<T>)

    • Copies into destination and returns written count.
    • Zero allocation.
    Declaration
    public int CopyTo(Span<T> destination)
    Parameters
    Type Name Description
    Span<T> destination
    Returns
    Type Description
    int
    | Edit this page View Source

    GetEnumerator()

    Declaration
    public SingleOrArray<T>.Enumerator GetEnumerator()
    Returns
    Type Description
    SingleOrArray<T>.Enumerator
    | Edit this page View Source

    ToArray()

    • Allocates only when single is requested as an array.
    • Prefer IReadOnlyList/foreach/CopyTo for zero alloc.
    Declaration
    public T[] ToArray()
    Returns
    Type Description
    T[]
    | Edit this page View Source

    ToString()

    Declaration
    public override string ToString()
    Returns
    Type Description
    string
    Overrides
    ValueType.ToString()

    Operators

    | Edit this page View Source

    implicit operator SingleOrArray<T>(T)

    Declaration
    public static implicit operator SingleOrArray<T>(T value)
    Parameters
    Type Name Description
    T value
    Returns
    Type Description
    SingleOrArray<T>
    | Edit this page View Source

    implicit operator SingleOrArray<T>(T[])

    Declaration
    public static implicit operator SingleOrArray<T>(T[] values)
    Parameters
    Type Name Description
    T[] values
    Returns
    Type Description
    SingleOrArray<T>

    Implements

    IReadOnlyList<T>
    IReadOnlyCollection<T>
    IEnumerable<T>
    IEnumerable

    Extension Methods

    EventExtensions.ToDelta<T>(T, string, int, string, bool)
    EventExtensions.ToDone<T>(T, string, int, string)
    EventExtensions.ToEvent<T>(T)
    EventExtensions.UpcastDelta<T1, T2>(T1, string, int, string, bool)
    FallbackExtensions.IsOr<TParent, TChild>(TParent, TChild)
    ResponseCastingExtensions.GetResult<T>(T)
    SystemExtensions.GetHashCodeOrDefault<T>(T)
    CollectionExtensions.ContainsAll<T>(IEnumerable<T>, IEnumerable<T>)
    CollectionExtensions.ContainsAny<T>(IEnumerable<T>, params T[])
    CollectionExtensions.IndexOf<T>(IEnumerable<T>, Func<T, bool>)
    CollectionExtensions.IsNotNullOrEmpty<T>(IEnumerable<T>)
    CollectionExtensions.IsNullOrEmpty<T>(IEnumerable<T>)
    CollectionExtensions.RandomOrDefault<T>(IReadOnlyList<T>, Random)
    SystemExtensions.GetName(object)
    • Edit this page
    • View Source
    In this article
    Back to top AI DevKit Documentation