Exemple #1
0
        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());
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        public static TSource Single <TSource>(this TSource[] source)
        {
            var aggregate = new Single <TSource>();

            ArrayNode.ProcessArray(source, ref aggregate);
            return(aggregate.GetResult());
        }
Exemple #6
0
        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());
        }
Exemple #7
0
        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());
        }
Exemple #8
0
        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()));
        }
Exemple #9
0
        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());
        }
Exemple #10
0
        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());
        }