public static Dictionary <TKey, TSource> ToDictionary <TSource, TKey>(this TSource[] source, Func <TSource, TKey> keySelector, IEqualityComparer <TKey> comparer = null) { var aggregate = new ToDictionary <TSource, TKey>(keySelector, comparer); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static TSource SingleOrDefault <TSource>(this TSource[] source, Func <TSource, bool> predicate) { var aggregate = new SingleOrDefaultPredicate <TSource>(predicate); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static System.Linq.ILookup <TKey, TElement> ToLookup <TSource, TKey, TElement>(this TSource[] source, Func <TSource, TKey> keySelector, Func <TSource, TElement> elementSelector, IEqualityComparer <TKey> comparer = null) { var aggregate = new ToLookup <TSource, TKey, TElement>(comparer, keySelector, elementSelector); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static bool Contains <TSource>(this TSource[] source, TSource value, IEqualityComparer <TSource> comparer) { var aggregate = new ContainsByComparer <TSource>(comparer, value); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static TSource Single <TSource>(this TSource[] source) { var aggregate = new Single <TSource>(); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static int Count <TSource>(this TSource[] source, Func <TSource, bool> predicate) { var aggregate = new CountIf <TSource>(predicate); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static bool All <TSource>(this TSource[] source, Func <TSource, bool> predicate) { var aggregate = new All <TSource, FuncToIFunc <TSource, bool> >(new FuncToIFunc <TSource, bool>(predicate)); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static TResult Aggregate <TSource, TAccumulate, TResult>(this TSource[] source, TAccumulate seed, Func <TAccumulate, TSource, TAccumulate> func, Func <TAccumulate, TResult> resultSelector) { var aggregate = new FoldForward <TSource, TAccumulate>(func, seed); ArrayNode.ProcessArray(source, ref aggregate); return(resultSelector(aggregate.GetResult())); }
public static TSource Aggregate <TSource>(this TSource[] source, Func <TSource, TSource, TSource> func) { var aggregate = new ReduceForward <TSource>(func); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }
public static HashSet <TSource> ToHashSet <TSource>(this TSource[] source, IEqualityComparer <TSource> comparer = null) { var aggregate = new ToHashSet <TSource>(comparer); ArrayNode.ProcessArray(source, ref aggregate); return(aggregate.GetResult()); }