Esempio n. 1
0
 /// <summary>
 /// Creates a new query that applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value.
 /// </summary>
 /// <typeparam name="TSource">The type of the elements of source.</typeparam>
 /// <typeparam name="TAcc">The type of the accumulator value.</typeparam>
 /// <param name="query">An query whose values are used to aggregate over.</param>
 /// <param name="seed">The initial accumulator value.</param>
 /// <param name="func">An accumulator function to be invoked on each element.</param>
 /// <returns>A query that returns the final accumulator value.</returns>
 public static IQueryExpr <TAcc> Aggregate <TSource, TAcc>(this IQueryExpr <IEnumerable <TSource> > query, TAcc seed, Expression <Func <TAcc, TSource, TAcc> > func)
 {
     return(new QueryExpr <TAcc>(QExpr.NewAggregate(Expression.Constant(seed), func, query.Expr)));
 }