Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NullableDecimalAverageAggregationOperator.cs
Go to the documentation of this file.
3
5
6internal sealed class NullableDecimalAverageAggregationOperator : InlinedAggregationOperator<decimal?, Pair<decimal, long>, decimal?>
7{
9 {
11
17
19 {
20 decimal first = 0.0m;
21 long num = 0L;
23 decimal? currentElement2 = null;
24 TKey currentKey = default(TKey);
25 int num2 = 0;
26 while (source.MoveNext(ref currentElement2, ref currentKey))
27 {
28 if ((num2++ & 0x3F) == 0)
29 {
31 }
32 if (currentElement2.HasValue)
33 {
34 first += currentElement2.GetValueOrDefault();
35 num = checked(num + 1);
36 }
37 }
39 return num > 0;
40 }
41
42 protected override void Dispose(bool disposing)
43 {
45 }
46 }
47
52
54 {
56 {
58 if (!enumerator.MoveNext())
59 {
60 return null;
61 }
62 Pair<decimal, long> current = enumerator.Current;
63 while (enumerator.MoveNext())
64 {
65 current.First += enumerator.Current.First;
66 current.Second += enumerator.Current.Second;
67 }
68 return current.First / (decimal)current.Second;
69 }
70 }
71
76}
NullableDecimalAverageAggregationOperatorEnumerator(QueryOperatorEnumerator< decimal?, TKey > source, int partitionIndex, CancellationToken cancellationToken)
override? decimal InternalAggregate(ref Exception singularExceptionToThrow)
override QueryOperatorEnumerator< Pair< decimal, long >, int > CreateEnumerator< TKey >(int index, int count, QueryOperatorEnumerator< decimal?, TKey > source, object sharedData, CancellationToken cancellationToken)