public static AggregateAggregateValue Create( AggregateOperator aggregateOperator, string continuationToken) { IAggregator aggregator; switch (aggregateOperator) { case AggregateOperator.Average: aggregator = AverageAggregator.Create(continuationToken); break; case AggregateOperator.Count: aggregator = CountAggregator.Create(continuationToken); break; case AggregateOperator.Max: aggregator = MinMaxAggregator.CreateMaxAggregator(continuationToken); break; case AggregateOperator.Min: aggregator = MinMaxAggregator.CreateMinAggregator(continuationToken); break; case AggregateOperator.Sum: aggregator = SumAggregator.Create(continuationToken); break; default: throw new ArgumentException($"Unknown {nameof(AggregateOperator)}: {aggregateOperator}."); } return(new AggregateAggregateValue(aggregator)); }