<PackageReference Include="System.Collections.Immutable" Version="11.0.0-preview.1.26104.118" />

System.Collections.Immutable.ImmutableArray

public static class 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); } }