<PackageReference Include="System.Collections.Immutable" Version="11.0.0-rc.3.26522.148" />

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<[Nullable(2)] T, [Nullable(2)] TResult>(this ImmutableArray<T> immutableArray, Func<T, TResult> selector); public static IEnumerable<TResult> SelectMany<[Nullable(2)] TSource, [Nullable(2)] TCollection, [Nullable(2)] TResult>(this ImmutableArray<TSource> immutableArray, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector); public static IEnumerable<T> Where<[Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static bool Any<T>(this ImmutableArray<T> immutableArray); public static bool Any<[Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static bool All<[Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static bool SequenceEqual<TDerived, [Nullable(2)] TBase>(this ImmutableArray<TBase> immutableArray, ImmutableArray<TDerived> items, IEqualityComparer<TBase> comparer = null) where TDerived : TBase; public static bool SequenceEqual<[Nullable(0)] TDerived, [Nullable(2)] TBase>(this ImmutableArray<TBase> immutableArray, IEnumerable<TDerived> items, IEqualityComparer<TBase> comparer = null) where TDerived : TBase; public static bool SequenceEqual<[Nullable(0)] TDerived, [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<[Nullable(2)] TAccumulate, [Nullable(2)] T>(this ImmutableArray<T> immutableArray, TAccumulate seed, Func<TAccumulate, T, TAccumulate> func); public static TResult Aggregate<[Nullable(2)] TAccumulate, [Nullable(2)] TResult, [Nullable(2)] T>(this ImmutableArray<T> immutableArray, TAccumulate seed, Func<TAccumulate, T, TAccumulate> func, Func<TAccumulate, TResult> resultSelector); public static T ElementAt<[Nullable(2)] T>(this ImmutableArray<T> immutableArray, int index); public static T ElementAtOrDefault<T>(this ImmutableArray<T> immutableArray, int index); public static T First<[Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, bool> predicate); public static T First<[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<[Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T Last<[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<[Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T Single<[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, [Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector); public static Dictionary<TKey, TElement> ToDictionary<TKey, [Nullable(2)] TElement, [Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, Func<T, TElement> elementSelector); public static Dictionary<TKey, T> ToDictionary<TKey, [Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, IEqualityComparer<TKey> comparer); public static Dictionary<TKey, TElement> ToDictionary<TKey, [Nullable(2)] TElement, [Nullable(2)] T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, Func<T, TElement> elementSelector, IEqualityComparer<TKey> comparer); public static T[] ToArray<[Nullable(2)] T>(this ImmutableArray<T> immutableArray); public static T First<[Nullable(2)] T>(this ImmutableArray<T>.Builder builder); public static T FirstOrDefault<T>(this ImmutableArray<T>.Builder builder); public static T Last<[Nullable(2)] T>(this ImmutableArray<T>.Builder builder); public static T LastOrDefault<T>(this ImmutableArray<T>.Builder builder); public static bool Any<[Nullable(2)] T>(this ImmutableArray<T>.Builder builder); } }