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

System.Linq.ImmutableArrayExtensions

public static class ImmutableArrayExtensions
LINQ extension method overrides that offer greater efficiency for ImmutableArray<T> than the standard LINQ methods NuGet package: System.Collections.Immutable (about immutable collections and how to install)
namespace System.Linq { public static class ImmutableArrayExtensions { public static IEnumerable<TResult> Select<[System.Runtime.CompilerServices.Nullable(2)] T, [System.Runtime.CompilerServices.Nullable(2)] TResult>(this ImmutableArray<T> immutableArray, Func<T, TResult> selector); public static IEnumerable<TResult> SelectMany<[System.Runtime.CompilerServices.Nullable(2)] TSource, [System.Runtime.CompilerServices.Nullable(2)] TCollection, [System.Runtime.CompilerServices.Nullable(2)] TResult>(this ImmutableArray<TSource> immutableArray, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector); public static IEnumerable<T> Where<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static bool Any<T>(this ImmutableArray<T> immutableArray); public static bool Any<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static bool All<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static bool SequenceEqual<TDerived, [System.Runtime.CompilerServices.Nullable(2)] TBase>(this ImmutableArray<TBase> immutableArray, ImmutableArray<TDerived> items, IEqualityComparer<TBase> comparer = null) where TDerived : TBase; public static bool SequenceEqual<[System.Runtime.CompilerServices.Nullable(0)] TDerived, [System.Runtime.CompilerServices.Nullable(2)] TBase>(this ImmutableArray<TBase> immutableArray, IEnumerable<TDerived> items, IEqualityComparer<TBase> comparer = null) where TDerived : TBase; public static bool SequenceEqual<[System.Runtime.CompilerServices.Nullable(0)] TDerived, [System.Runtime.CompilerServices.Nullable(2)] TBase>(this ImmutableArray<TBase> immutableArray, ImmutableArray<TDerived> items, Func<TBase, TBase, bool> predicate) where TDerived : TBase; public static T Aggregate<T>(this ImmutableArray<T> immutableArray, Func<T, T, T> func); public static TAccumulate Aggregate<[System.Runtime.CompilerServices.Nullable(2)] TAccumulate, [System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, TAccumulate seed, Func<TAccumulate, T, TAccumulate> func); public static TResult Aggregate<[System.Runtime.CompilerServices.Nullable(2)] TAccumulate, [System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, TAccumulate seed, Func<TAccumulate, T, TAccumulate> func, Func<TAccumulate, TResult> resultSelector); public static T ElementAt<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, int index); public static T ElementAtOrDefault<T>(this ImmutableArray<T> immutableArray, int index); public static T First<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static T First<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T FirstOrDefault<T>(this ImmutableArray<T> immutableArray); public static T FirstOrDefault<T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static T Last<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T Last<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static T LastOrDefault<T>(this ImmutableArray<T> immutableArray); public static T LastOrDefault<T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static T Single<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T Single<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static T SingleOrDefault<T>(this ImmutableArray<T> immutableArray); public static T SingleOrDefault<T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static Dictionary<TKey, T> ToDictionary<TKey, [System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector); public static Dictionary<TKey, TElement> ToDictionary<TKey, [System.Runtime.CompilerServices.Nullable(2)] TElement, [System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, Func<T, TElement> elementSelector); public static Dictionary<TKey, T> ToDictionary<TKey, [System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, IEqualityComparer<TKey> comparer); public static Dictionary<TKey, TElement> ToDictionary<TKey, [System.Runtime.CompilerServices.Nullable(2)] TElement, [System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, Func<T, TElement> elementSelector, IEqualityComparer<TKey> comparer); public static T[] ToArray<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T First<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T>.Builder builder); public static T FirstOrDefault<T>(this ImmutableArray<T>.Builder builder); public static T Last<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T>.Builder builder); public static T LastOrDefault<T>(this ImmutableArray<T>.Builder builder); public static bool Any<[System.Runtime.CompilerServices.Nullable(2)] T>(this ImmutableArray<T>.Builder builder); } }