System.Linq.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);
}
}