System.Collections.Immutable.ImmutableArray
Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created.
NuGet package: System.Collections.Immutable (about immutable collections and how to install)
namespace System.Collections.Immutable
{
public static class ImmutableArray
{
public static ImmutableArray<T> Create<T>();
public static ImmutableArray<T> Create<[Nullable(2)] T>(T item);
public static ImmutableArray<T> Create<[Nullable(2)] T>(T item1, T item2);
public static ImmutableArray<T> Create<[Nullable(2)] T>(T item1, T item2, T item3);
public static ImmutableArray<T> Create<[Nullable(2)] T>(T item1, T item2, T item3, T item4);
public static ImmutableArray<T> Create<T>(ReadOnlySpan<T> items);
public static ImmutableArray<T> Create<T>(Span<T> items);
public static ImmutableArray<T> ToImmutableArray<T>(this ReadOnlySpan<T> items);
public static ImmutableArray<T> ToImmutableArray<T>(this Span<T> items);
public static ImmutableArray<T> CreateRange<[Nullable(2)] T>(IEnumerable<T> items);
public static ImmutableArray<T> Create<T>(params T[] items);
public static ImmutableArray<T> Create<[Nullable(2)] T>(T[] items, int start, int length);
public static ImmutableArray<T> Create<T>(ImmutableArray<T> items, int start, int length);
public static ImmutableArray<TResult> CreateRange<TSource, TResult>(ImmutableArray<TSource> items, Func<TSource, TResult> selector);
public static ImmutableArray<TResult> CreateRange<TSource, TResult>(ImmutableArray<TSource> items, int start, int length, Func<TSource, TResult> selector);
public static ImmutableArray<TResult> CreateRange<TSource, TArg, TResult>(ImmutableArray<TSource> items, Func<TSource, TArg, TResult> selector, TArg arg);
public static ImmutableArray<TResult> CreateRange<TSource, TArg, TResult>(ImmutableArray<TSource> items, int start, int length, Func<TSource, TArg, TResult> selector, TArg arg);
public static ImmutableArray<T>.Builder CreateBuilder<[Nullable(2)] T>();
public static ImmutableArray<T>.Builder CreateBuilder<[Nullable(2)] T>(int initialCapacity);
public static ImmutableArray<TSource> ToImmutableArray<[Nullable(2)] TSource>(this IEnumerable<TSource> items);
public static ImmutableArray<TSource> ToImmutableArray<[Nullable(2)] TSource>(this ImmutableArray<TSource>.Builder builder);
public static int BinarySearch<[Nullable(2)] T>(this ImmutableArray<T> array, T value);
public static int BinarySearch<[Nullable(2)] T>(this ImmutableArray<T> array, T value, IComparer<T> comparer);
public static int BinarySearch<[Nullable(2)] T>(this ImmutableArray<T> array, int index, int length, T value);
public static int BinarySearch<[Nullable(2)] T>(this ImmutableArray<T> array, int index, int length, T value, IComparer<T> comparer);
}
}