System.Linq.Parallel.NullableDoubleAverageAggregationOperator.NullableDoubleAverageAggregationOperatorEnumerator.MoveNextCore C# (CSharp) Метод

MoveNextCore() защищенный Метод

protected MoveNextCore ( System.Linq.Parallel.Pair &currentElement ) : bool
currentElement System.Linq.Parallel.Pair
Результат bool
            protected override bool MoveNextCore(ref Pair<double, long> currentElement)
            {
                // The temporary result contains the running sum and count, respectively.
                double sum = 0.0;
                long count = 0;

                QueryOperatorEnumerator<double?, TKey> source = m_source;
                double? current = default(double?);
                TKey keyUnused = default(TKey);
                int i = 0;
                while (source.MoveNext(ref current, ref keyUnused))
                {
                    if (current.HasValue)
                    {
                        if ((i++ & CancellationState.POLL_INTERVAL) == 0)
                            CancellationState.ThrowIfCanceled(m_cancellationToken);

                        sum += current.GetValueOrDefault();
                        count++;
                    }
                }

                currentElement = new Pair<double, long>(sum, count);
                return count > 0;
            }
NullableDoubleAverageAggregationOperator.NullableDoubleAverageAggregationOperatorEnumerator