35 instantiations of Pair
System.Linq.Parallel (35)
System\Linq\Parallel\Enumerables\AggregationMinMaxHelpers.cs (3)
33new AssociativeAggregationOperator<T, Pair<bool, T>, T>(source, new Pair<bool, T>(false, default!), null, 77return new Pair<bool, T>(true, element); 102return new Pair<bool, T>(true, element.Second);
System\Linq\Parallel\Partitioning\HashRepartitionEnumerator.cs (2)
119currentElement = new Pair<TInputOutput, THashKey>( 244buffer.Add(new Pair<TInputOutput, THashKey>(element, elementHashKey));
System\Linq\Parallel\Partitioning\OrderedHashRepartitionEnumerator.cs (2)
116currentElement = new Pair<TInputOutput, THashKey>( 254buffer.Add(new Pair<TInputOutput, THashKey>(element, elementHashKey));
System\Linq\Parallel\QueryOperators\Binary\ExceptQueryOperator.cs (1)
306leftLookup[wrappedLeftElement] = new Pair<TInputOutput, TLeftKey>(leftElement.First, leftKey);
System\Linq\Parallel\QueryOperators\Binary\GroupJoinQueryOperator.cs (4)
292return new Pair<IEnumerable<TElement>, int>(baseValue, OrderKey); 398return new Pair<IEnumerable<TElement>, Pair<bool, TOrderKey>>(baseValue._grouping, Wrap(baseValue._orderKey)); 403return new Pair<bool, TOrderKey>(true, orderKey); 455return new Pair<IEnumerable<TElement>, TOrderKey>(ParallelEnumerable.Empty<TElement>(), EmptyValueKey);
System\Linq\Parallel\QueryOperators\Binary\HashJoinQueryOperatorEnumerator.cs (2)
222return new Pair<TLeftKey, TRightKey>(leftKey, rightKey); 385return new Pair<TElement, TOrderKey>(value, orderKey);
System\Linq\Parallel\QueryOperators\Binary\IntersectQueryOperator.cs (1)
290_hashLookup[wrappedLeftElem] = new Pair<TInputOutput, TLeftKey>(leftElement.First, leftKey);
System\Linq\Parallel\QueryOperators\Binary\UnionQueryOperator.cs (2)
360union[wrappedElem] = new Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>>(elem.First, key); 377union[wrappedElem] = new Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>>(elem.First, key);
System\Linq\Parallel\QueryOperators\Inlined\DecimalAverageAggregationOperator.cs (1)
131currentElement = new Pair<decimal, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\DoubleAverageAggregationOperator.cs (1)
132currentElement = new Pair<double, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\FloatAverageAggregationOperator.cs (1)
132currentElement = new Pair<double, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\IntAverageAggregationOperator.cs (1)
131currentElement = new Pair<long, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\LongAverageAggregationOperator.cs (1)
131currentElement = new Pair<long, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\NullableDecimalAverageAggregationOperator.cs (1)
129currentElement = new Pair<decimal, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\NullableDoubleAverageAggregationOperator.cs (1)
129currentElement = new Pair<double, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\NullableFloatAverageAggregationOperator.cs (1)
130currentElement = new Pair<double, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\NullableIntAverageAggregationOperator.cs (1)
130currentElement = new Pair<long, long>(sum, count);
System\Linq\Parallel\QueryOperators\Inlined\NullableLongAverageAggregationOperator.cs (1)
130currentElement = new Pair<long, long>(sum, count);
System\Linq\Parallel\QueryOperators\Unary\GroupByQueryOperator.cs (1)
776_values.Add(new Pair<TOrderKey, TElement>(orderKey, value));
System\Linq\Parallel\QueryOperators\Unary\ReverseQueryOperator.cs (1)
143_buffer.Add(new Pair<TSource, TKey>(current, key));
System\Linq\Parallel\QueryOperators\Unary\SelectManyQueryOperator.cs (2)
336currentKey = new Pair<int, int>(_mutables._currentLeftSourceIndex, _mutables._currentRightSourceIndex); 465currentKey = new Pair<TLeftKey, int>(_mutables._currentLeftKey, _mutables._currentRightSourceIndex);
System\Linq\Parallel\QueryOperators\Unary\SortQueryOperator.cs (1)
66(TInputOutput elem) => new Pair<TSortKey, TKey2>(_keySelector(elem), key2Selector(elem));
System\Linq\Parallel\QueryOperators\Unary\TakeOrSkipQueryOperator.cs (1)
214buffer.Add(new Pair<TResult, TKey>(current, index));
System\Linq\Parallel\QueryOperators\Unary\TakeOrSkipWhileQueryOperator.cs (1)
277buffer.Add(new Pair<TResult, TKey>(current, key));
System\Linq\Parallel\Scheduling\OrderPreservingPipeliningSpoolingTask.cs (1)
106chunk[lastChunkSize] = new Pair<TKey, TOutput>(key, element);
297 references to Pair
System.Linq.Parallel (297)
System\Linq\Parallel\Enumerables\AggregationMinMaxHelpers.cs (18)
28Func<Pair<bool, T>, T, Pair<bool, T>> intermediateReduce = MakeIntermediateReduceFunction(sign); 29Func<Pair<bool, T>, Pair<bool, T>, Pair<bool, T>> finalReduce = MakeFinalReduceFunction(sign); 30Func<Pair<bool, T>, T> resultSelector = MakeResultSelectorFunction(); 32AssociativeAggregationOperator<T, Pair<bool, T>, T> aggregation = 33new AssociativeAggregationOperator<T, Pair<bool, T>, T>(source, new Pair<bool, T>(false, default!), null, 61private static Func<Pair<bool, T>, T, Pair<bool, T>> MakeIntermediateReduceFunction(int sign) 68return delegate (Pair<bool, T> accumulator, T element) 85private static Func<Pair<bool, T>, Pair<bool, T>, Pair<bool, T>> MakeFinalReduceFunction(int sign) 92return delegate (Pair<bool, T> accumulator, Pair<bool, T> element) 110private static Func<Pair<bool, T>, T> MakeResultSelectorFunction() 116return delegate (Pair<bool, T> accumulator)
System\Linq\Parallel\Merging\OrderPreservingPipeliningMergeHelper.cs (14)
59private readonly Queue<Pair<TKey, TOutput>>[] _buffers; 132_buffers = new Queue<Pair<TKey, TOutput>>[partitionCount]; 239private readonly Queue<Pair<TKey, TOutput>>?[] _privateBuffer; 256_privateBuffer = new Queue<Pair<TKey, TOutput>>[partitionCount]; 288Pair<TKey, TOutput> element = default(Pair<TKey, TOutput>); 324Pair<TKey, TOutput> element = default(Pair<TKey, TOutput>); 390private bool TryWaitForElement(int producer, ref Pair<TKey, TOutput> element) 392Queue<Pair<TKey, TOutput>> buffer = _mergeHelper._buffers[producer]; 402element = default(Pair<TKey, TOutput>); 416element = default(Pair<TKey, TOutput>); 444_mergeHelper._buffers[producer] = new Queue<Pair<TKey, TOutput>>(INITIAL_BUFFER_SIZE); 460private bool TryGetPrivateElement(int producer, ref Pair<TKey, TOutput> element)
System\Linq\Parallel\Partitioning\HashRepartitionEnumerator.cs (9)
24internal sealed class HashRepartitionEnumerator<TInputOutput, THashKey, TIgnoreKey> : QueryOperatorEnumerator<Pair<TInputOutput, THashKey>, int> 33private readonly ListChunk<Pair<TInputOutput, THashKey>>[][] _valueExchangeMatrix; // Matrix to do inter-task communication. 42internal ListChunk<Pair<TInputOutput, THashKey>>? _currentBuffer; // The buffer we're currently enumerating. 67CountdownEvent barrier, ListChunk<Pair<TInputOutput, THashKey>>[][] valueExchangeMatrix, CancellationToken cancellationToken) 107internal override bool MoveNext(ref Pair<TInputOutput, THashKey> currentElement, ref int currentKey) 204ListChunk<Pair<TInputOutput, THashKey>>[] privateBuffers = new ListChunk<Pair<TInputOutput, THashKey>>[_partitionCount]; 237ListChunk<Pair<TInputOutput, THashKey>> buffer = privateBuffers[destinationIndex]; 241privateBuffers[destinationIndex] = buffer = new ListChunk<Pair<TInputOutput, THashKey>>(INITIAL_PRIVATE_BUFFER_SIZE);
System\Linq\Parallel\Partitioning\HashRepartitionStream.cs (1)
34internal abstract class HashRepartitionStream<TInputOutput, THashKey, TOrderKey> : PartitionedStream<Pair<TInputOutput, THashKey>, TOrderKey>
System\Linq\Parallel\Partitioning\OrderedHashRepartitionEnumerator.cs (9)
25internal sealed class OrderedHashRepartitionEnumerator<TInputOutput, THashKey, TOrderKey> : QueryOperatorEnumerator<Pair<TInputOutput, THashKey>, TOrderKey> 33private readonly ListChunk<Pair<TInputOutput, THashKey>>[][] _valueExchangeMatrix; // Matrix to do inter-task communication of values. 43internal ListChunk<Pair<TInputOutput, THashKey>>? _currentBuffer; // The buffer we're currently enumerating. 69ListChunk<Pair<TInputOutput, THashKey>>[][] valueExchangeMatrix, ListChunk<TOrderKey>[][] keyExchangeMatrix, CancellationToken cancellationToken) 107internal override bool MoveNext(ref Pair<TInputOutput, THashKey> currentElement, [AllowNull] ref TOrderKey currentKey) 210ListChunk<Pair<TInputOutput, THashKey>>[] privateBuffers = new ListChunk<Pair<TInputOutput, THashKey>>[_partitionCount]; 244ListChunk<Pair<TInputOutput, THashKey>> buffer = privateBuffers[destinationIndex]; 250privateBuffers[destinationIndex] = buffer = new ListChunk<Pair<TInputOutput, THashKey>>(INITIAL_PRIVATE_BUFFER_SIZE);
System\Linq\Parallel\Partitioning\OrderedHashRepartitionStream.cs (2)
28ListChunk<Pair<TInputOutput, THashKey>>[][] valueExchangeMatrix = 29JaggedArray<ListChunk<Pair<TInputOutput, THashKey>>>.Allocate(inputStream.PartitionCount, inputStream.PartitionCount);
System\Linq\Parallel\Partitioning\UnorderedHashRepartitionStream.cs (2)
33ListChunk<Pair<TInputOutput, THashKey>>[][] valueExchangeMatrix = 34JaggedArray<ListChunk<Pair<TInputOutput, THashKey>>>.Allocate(inputStream.PartitionCount, inputStream.PartitionCount);
System\Linq\Parallel\QueryOperators\Binary\ExceptQueryOperator.cs (22)
80PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftHashStream, PartitionedStream<TInputOutput, TRightKey> rightPartitionedStream, 85PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightHashStream = 139private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> _leftSource; // Left data source. 140private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> _rightSource; // Right data source. 151QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftSource, 152QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightSource, 182Pair<TInputOutput, NoKeyMemoizationRequired> rightElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 196Pair<TInputOutput, NoKeyMemoizationRequired> leftElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 229private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> _leftSource; // Left data source. 230private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> _rightSource; // Right data source. 234private IEnumerator<KeyValuePair<Wrapper<TInputOutput>, Pair<TInputOutput, TLeftKey>>>? _outputEnumerator; // The enumerator output elements + order keys. 243QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftSource, 244QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightSource, 272Pair<TInputOutput, NoKeyMemoizationRequired> rightElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 284new Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput, TLeftKey>>( 287Pair<TInputOutput, NoKeyMemoizationRequired> leftElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 299Pair<TInputOutput, TLeftKey> oldEntry; 315Pair<TInputOutput, TLeftKey> currentPair = _outputEnumerator.Current.Value;
System\Linq\Parallel\QueryOperators\Binary\GroupJoinQueryOperator.cs (27)
98PartitionedStream<Pair<TLeftInput, TKey>, TLeftKey> leftHashStream, PartitionedStream<TRightInput, TRightKey> rightPartitionedStream, 103PartitionedStream<Pair<TRightInput, TKey>, TRightKey> rePartitionedRightStream = ExchangeUtilities.HashRepartitionOrdered( 106HashLookupBuilder<IEnumerable<TRightInput>, Pair<bool, TRightKey>, TKey>[] rightLookupBuilders = 107new HashLookupBuilder<IEnumerable<TRightInput>, Pair<bool, TRightKey>, TKey>[partitionCount]; 114WrapPartitionedStreamHelper<TLeftKey, Pair<bool, TRightKey>>(leftHashStream, rightLookupBuilders, 119PartitionedStream<Pair<TRightInput, TKey>, int> rePartitionedRightStream = ExchangeUtilities.HashRepartition( 136PartitionedStream<Pair<TLeftInput, TKey>, TLeftKey> leftHashStream, 144IComparer<Pair<TLeftKey, TRightKey>> outputKeyComparer = new PairComparer<TLeftKey, TRightKey>(leftHashStream.KeyComparer, rightKeyComparer); 146WrapPartitionedStreamHelper<TLeftKey, TRightKey, Pair<TLeftKey, TRightKey>>(leftHashStream, rightLookupBuilders, 169PartitionedStream<Pair<TLeftInput, TKey>, TLeftKey> leftHashStream, 219private readonly QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> _dataSource; // data source. For building. 222internal GroupJoinHashLookupBuilder(QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> dataSource, IEqualityComparer<THashKey>? keyComparer) 290protected override Pair<IEnumerable<TElement>, int> CreateValuePair(ListChunk<TElement> baseValue) 303internal sealed class OrderedGroupJoinHashLookupBuilder<TElement, TOrderKey, THashKey> : HashLookupBuilder<IEnumerable<TElement>, Pair<bool, TOrderKey>, THashKey> 305private readonly QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> _dataSource; // data source. For building. 310QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> dataSource, 321public override HashJoinHashLookup<THashKey, IEnumerable<TElement>, Pair<bool, TOrderKey>> BuildHashLookup(CancellationToken cancellationToken) 387private sealed class OrderedGroupJoinHashLookup : GroupJoinHashLookup<THashKey, TElement, GroupKeyData, Pair<bool, TOrderKey>> 394protected override Pair<bool, TOrderKey> EmptyValueKey => default(Pair<bool, TOrderKey>); 396protected override Pair<IEnumerable<TElement>, Pair<bool, TOrderKey>> CreateValuePair(GroupKeyData baseValue) 398return new Pair<IEnumerable<TElement>, Pair<bool, TOrderKey>>(baseValue._grouping, Wrap(baseValue._orderKey)); 401private static Pair<bool, TOrderKey> Wrap(TOrderKey orderKey) 441Pair<IEnumerable<TElement>, TOrderKey> valueList = GetValueList(key); 446private Pair<IEnumerable<TElement>, TOrderKey> GetValueList(THashKey key) 459protected abstract Pair<IEnumerable<TElement>, TOrderKey> CreateValuePair(TBaseElement baseValue);
System\Linq\Parallel\QueryOperators\Binary\HashJoinQueryOperatorEnumerator.cs (18)
41private readonly QueryOperatorEnumerator<Pair<TLeftInput, THashKey>, TLeftKey> _leftSource; // Left (outer) data source. For probing. 53internal ListChunk<Pair<TRightInput, TRightKey>>? _currentRightMatches; // Current right matches (if any). 63QueryOperatorEnumerator<Pair<TLeftInput, THashKey>, TLeftKey> leftSource, 108ListChunk<Pair<TRightInput, TRightKey>>? currentRightChunk = mutables._currentRightMatches; 118Pair<TLeftInput, THashKey> leftPair = default(Pair<TLeftInput, THashKey>); 167Pair<TRightInput, TRightKey> rightMatch = mutables._currentRightMatches._chunk[mutables._currentRightMatchesIndex]; 218internal sealed class PairOutputKeyBuilder<TLeftKey, TRightKey> : HashJoinOutputKeyBuilder<TLeftKey, TRightKey, Pair<TLeftKey, TRightKey>> 220public override Pair<TLeftKey, TRightKey> Combine(TLeftKey leftKey, TRightKey rightKey) 237QueryOperatorEnumerator<Pair<TBaseElement, THashKey>, TBaseOrderKey> dataSource, 248Pair<TBaseElement, THashKey> currentPair = default(Pair<TBaseElement, THashKey>); 332internal Pair<TElement, TOrderKey> Head 339private readonly Pair<TElement, TOrderKey> _head; 341internal ListChunk<Pair<TElement, TOrderKey>>? Tail 348private ListChunk<Pair<TElement, TOrderKey>>? _tail; 376_tail = new ListChunk<Pair<TElement, TOrderKey>>(INITIAL_CHUNK_SIZE); 383private static Pair<TElement, TOrderKey> CreatePair(TElement value, TOrderKey orderKey)
System\Linq\Parallel\QueryOperators\Binary\IntersectQueryOperator.cs (22)
82PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftHashStream, PartitionedStream<TInputOutput, TRightKey> rightPartitionedStream, 87PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightHashStream = 128private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> _leftSource; // Left data source. 129private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> _rightSource; // Right data source. 140QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftSource, 141QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightSource, 169Pair<TInputOutput, NoKeyMemoizationRequired> rightElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 183Pair<TInputOutput, NoKeyMemoizationRequired> leftElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 230private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> _leftSource; // Left data source. 231private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> _rightSource; // Right data source. 234private Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput, TLeftKey>>? _hashLookup; // The hash lookup, used to produce the intersection. 242QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftSource, 243QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightSource, 270_hashLookup = new Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput, TLeftKey>>(_comparer); 272Pair<TInputOutput, NoKeyMemoizationRequired> leftElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 280Pair<TInputOutput, TLeftKey> oldEntry; 296Pair<TInputOutput, NoKeyMemoizationRequired> rightElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 307Pair<TInputOutput, TLeftKey> entry;
System\Linq\Parallel\QueryOperators\Binary\JoinQueryOperator.cs (7)
112PartitionedStream<Pair<TLeftInput, TKey>, TLeftKey> leftHashStream, PartitionedStream<TRightInput, TRightKey> rightPartitionedStream, 118IComparer<Pair<TLeftKey, TRightKey>> outputKeyComparer = 121WrapPartitionedStreamHelper<TLeftKey, TRightKey, Pair<TLeftKey, TRightKey>>(leftHashStream, 136PartitionedStream<Pair<TLeftInput, TKey>, TLeftKey> leftHashStream, PartitionedStream<Pair<TRightInput, TKey>, TRightKey> rightHashStream, 196private readonly QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> _dataSource; // data source. For building. 199internal JoinHashLookupBuilder(QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> dataSource, IEqualityComparer<THashKey>? keyComparer)
System\Linq\Parallel\QueryOperators\Binary\UnionQueryOperator.cs (27)
67PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftHashStream = 76PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, int> leftHashStream = 90PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftHashStream, PartitionedStream<TInputOutput, TRightKey> rightStream, 95PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TRightKey> rightHashStream = 104PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, int> rightHashStream = 118PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftHashStream, 119PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TRightKey> rightHashStream, 185private QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey>? _leftSource; // Left data source. 186private QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TRightKey>? _rightSource; // Right data source. 197QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftSource, 198QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TRightKey> rightSource, 231Pair<TInputOutput, NoKeyMemoizationRequired> currentLeftElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 259Pair<TInputOutput, NoKeyMemoizationRequired> currentRightElement = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 294private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> _leftSource; // Left data source. 295private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TRightKey> _rightSource; // Right data source. 298private IEnumerator<KeyValuePair<Wrapper<TInputOutput>, Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>>>>? _outputEnumerator; // Enumerator over the output of the union. 310QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TLeftKey> leftSource, 311QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TRightKey> rightSource, 341Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>>> union = 342new Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>>>(wrapperComparer); 344Pair<TInputOutput, NoKeyMemoizationRequired> elem = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 355Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>> oldEntry; 372Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>> oldEntry; 386Pair<TInputOutput, ConcatKey<TLeftKey, TRightKey>> current = _outputEnumerator.Current.Value;
System\Linq\Parallel\QueryOperators\Inlined\DecimalAverageAggregationOperator.cs (6)
19internal sealed class DecimalAverageAggregationOperator : InlinedAggregationOperator<decimal, Pair<decimal, long>, decimal> 43using (IEnumerator<Pair<decimal, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 52Pair<decimal, long> result = enumerator.Current; 73protected override QueryOperatorEnumerator<Pair<decimal, long>, int> CreateEnumerator<TKey>( 84private sealed class DecimalAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<decimal, long>> 105protected override bool MoveNextCore(ref Pair<decimal, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\DoubleAverageAggregationOperator.cs (6)
19internal sealed class DoubleAverageAggregationOperator : InlinedAggregationOperator<double, Pair<double, long>, double> 43using (IEnumerator<Pair<double, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 52Pair<double, long> result = enumerator.Current; 73protected override QueryOperatorEnumerator<Pair<double, long>, int> CreateEnumerator<TKey>( 85private sealed class DoubleAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<double, long>> 106protected override bool MoveNextCore(ref Pair<double, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\FloatAverageAggregationOperator.cs (6)
19internal sealed class FloatAverageAggregationOperator : InlinedAggregationOperator<float, Pair<double, long>, float> 43using (IEnumerator<Pair<double, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 52Pair<double, long> result = enumerator.Current; 73protected override QueryOperatorEnumerator<Pair<double, long>, int> CreateEnumerator<TKey>( 85private sealed class FloatAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<double, long>> 106protected override bool MoveNextCore(ref Pair<double, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\IntAverageAggregationOperator.cs (6)
19internal sealed class IntAverageAggregationOperator : InlinedAggregationOperator<int, Pair<long, long>, double> 43using (IEnumerator<Pair<long, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 52Pair<long, long> result = enumerator.Current; 73protected override QueryOperatorEnumerator<Pair<long, long>, int> CreateEnumerator<TKey>( 84private sealed class IntAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<long, long>> 105protected override bool MoveNextCore(ref Pair<long, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\LongAverageAggregationOperator.cs (6)
19internal sealed class LongAverageAggregationOperator : InlinedAggregationOperator<long, Pair<long, long>, double> 43using (IEnumerator<Pair<long, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 52Pair<long, long> result = enumerator.Current; 73protected override QueryOperatorEnumerator<Pair<long, long>, int> CreateEnumerator<TKey>( 84private sealed class LongAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<long, long>> 105protected override bool MoveNextCore(ref Pair<long, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\NullableDecimalAverageAggregationOperator.cs (6)
19internal sealed class NullableDecimalAverageAggregationOperator : InlinedAggregationOperator<decimal?, Pair<decimal, long>, decimal?> 43using (IEnumerator<Pair<decimal, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 51Pair<decimal, long> result = enumerator.Current; 72protected override QueryOperatorEnumerator<Pair<decimal, long>, int> CreateEnumerator<TKey>( 83private sealed class NullableDecimalAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<decimal, long>> 104protected override bool MoveNextCore(ref Pair<decimal, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\NullableDoubleAverageAggregationOperator.cs (6)
19internal sealed class NullableDoubleAverageAggregationOperator : InlinedAggregationOperator<double?, Pair<double, long>, double?> 43using (IEnumerator<Pair<double, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 51Pair<double, long> result = enumerator.Current; 72protected override QueryOperatorEnumerator<Pair<double, long>, int> CreateEnumerator<TKey>( 83private sealed class NullableDoubleAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<double, long>> 104protected override bool MoveNextCore(ref Pair<double, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\NullableFloatAverageAggregationOperator.cs (6)
19internal sealed class NullableFloatAverageAggregationOperator : InlinedAggregationOperator<float?, Pair<double, long>, float?> 43using (IEnumerator<Pair<double, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 51Pair<double, long> result = enumerator.Current; 72protected override QueryOperatorEnumerator<Pair<double, long>, int> CreateEnumerator<TKey>( 83private sealed class NullableFloatAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<double, long>> 104protected override bool MoveNextCore(ref Pair<double, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\NullableIntAverageAggregationOperator.cs (6)
19internal sealed class NullableIntAverageAggregationOperator : InlinedAggregationOperator<int?, Pair<long, long>, double?> 43using (IEnumerator<Pair<long, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 51Pair<long, long> result = enumerator.Current; 72protected override QueryOperatorEnumerator<Pair<long, long>, int> CreateEnumerator<TKey>( 83private sealed class NullableIntAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<long, long>> 104protected override bool MoveNextCore(ref Pair<long, long> currentElement)
System\Linq\Parallel\QueryOperators\Inlined\NullableLongAverageAggregationOperator.cs (6)
19internal sealed class NullableLongAverageAggregationOperator : InlinedAggregationOperator<long?, Pair<long, long>, double?> 43using (IEnumerator<Pair<long, long>> enumerator = GetEnumerator(ParallelMergeOptions.FullyBuffered, true)) 51Pair<long, long> result = enumerator.Current; 72protected override QueryOperatorEnumerator<Pair<long, long>, int> CreateEnumerator<TKey>( 84private sealed class NullableLongAverageAggregationOperatorEnumerator<TKey> : InlinedAggregationOperatorEnumerator<Pair<long, long>> 105protected override bool MoveNextCore(ref Pair<long, long> currentElement)
System\Linq\Parallel\QueryOperators\Unary\DistinctQueryOperator.cs (9)
79PartitionedStream<Pair<TInputOutput, NoKeyMemoizationRequired>, TKey> hashStream, 121private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TKey> _source; // The data source. 131QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TKey> source, IEqualityComparer<TInputOutput>? comparer, 151Pair<TInputOutput, NoKeyMemoizationRequired> current = default(Pair<TInputOutput, NoKeyMemoizationRequired>); 193private readonly QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TKey> _source; // The data source. 206QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TKey> source, 231Pair<TInputOutput, NoKeyMemoizationRequired> elem = default(Pair<TInputOutput, NoKeyMemoizationRequired>);
System\Linq\Parallel\QueryOperators\Unary\GroupByQueryOperator.cs (22)
99PartitionedStream<Pair<TSource, TGroupKey>, TKey> hashStream, 137PartitionedStream<Pair<TSource, TGroupKey>, TKey> hashStream, 224protected readonly QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> _source; // The data source to enumerate. 240QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> source, 310QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> source, 325Pair<TSource, TGroupKey> sourceElement = default(Pair<TSource, TGroupKey>); 370QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> source, 387Pair<TSource, TGroupKey> sourceElement = default(Pair<TSource, TGroupKey>); 425protected readonly QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> _source; // The data source to enumerate. 442protected OrderedGroupByQueryOperatorEnumerator(QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> source, 538internal OrderedGroupByIdentityQueryOperatorEnumerator(QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> source, 554Pair<TSource, TGroupKey> sourceElement = default(Pair<TSource, TGroupKey>); 611internal OrderedGroupByElementSelectorQueryOperatorEnumerator(QueryOperatorEnumerator<Pair<TSource, TGroupKey>, TOrderKey> source, 629Pair<TSource, TGroupKey> sourceElement = default(Pair<TSource, TGroupKey>); 730private ListChunk<Pair<TOrderKey, TElement>>? _values; // Values in this group 742_values = new ListChunk<Pair<TOrderKey, TElement>>(INITIAL_CHUNK_SIZE); 787ListChunk<Pair<TOrderKey, TElement>>? curChunk = _values; 797foreach (Pair<TOrderKey, TElement> p in _values)
System\Linq\Parallel\QueryOperators\Unary\ReverseQueryOperator.cs (2)
108private List<Pair<TSource, TKey>>? _buffer; // Our buffer. [allocate in moveNext to avoid false-sharing] 134_buffer = new List<Pair<TSource, TKey>>();
System\Linq\Parallel\QueryOperators\Unary\SelectManyQueryOperator.cs (6)
152var outputStream = new PartitionedStream<TOutput, Pair<TLeftKey, int>>(partitionCount, keyComparer, OrdinalIndexState); 170var outputStream = new PartitionedStream<TOutput, Pair<int, int>>(inputStream.PartitionCount, keyComparer, OrdinalIndexState); 233private sealed class IndexedSelectManyQueryOperatorEnumerator : QueryOperatorEnumerator<TOutput, Pair<int, int>> 273internal override bool MoveNext([MaybeNullWhen(false), AllowNull] ref TOutput currentElement, ref Pair<int, int> currentKey) 362private sealed class SelectManyQueryOperatorEnumerator<TLeftKey> : QueryOperatorEnumerator<TOutput, Pair<TLeftKey, int>> 402internal override bool MoveNext([MaybeNullWhen(false), AllowNull] ref TOutput currentElement, ref Pair<TLeftKey, int> currentKey)
System\Linq\Parallel\QueryOperators\Unary\SortQueryOperator.cs (3)
64IComparer<Pair<TSortKey, TKey2>> pairComparer = new PairComparer<TSortKey, TKey2>(_comparer, key2Comparer); 65Func<TInputOutput, Pair<TSortKey, TKey2>> pairKeySelector = 68return new SortQueryOperator<TInputOutput, Pair<TSortKey, TKey2>>(Child, pairKeySelector, pairComparer, false);
System\Linq\Parallel\QueryOperators\Unary\TakeOrSkipQueryOperator.cs (3)
163private List<Pair<TResult, TKey>>? _buffer; // Our buffer. 201List<Pair<TResult, TKey>> buffer = new List<Pair<TResult, TKey>>();
System\Linq\Parallel\QueryOperators\Unary\TakeOrSkipWhileQueryOperator.cs (3)
218private List<Pair<TResult, TKey>>? _buffer; // Our buffer. 258List<Pair<TResult, TKey>> buffer = new List<Pair<TResult, TKey>>();
System\Linq\Parallel\Scheduling\OrderPreservingPipeliningSpoolingTask.cs (6)
33private readonly Queue<Pair<TKey, TOutput>>[] _buffers; // The buffer for the results 62Queue<Pair<TKey, TOutput>>[] buffers, 96Pair<TKey, TOutput>[] chunk = new Pair<TKey, TOutput>[chunkSize]; 150Queue<Pair<TKey, TOutput>>[] buffers, object[] bufferLocks, 164buffers[i] = new Queue<Pair<TKey, TOutput>>(OrderPreservingPipeliningMergeHelper<TOutput, TKey>.INITIAL_BUFFER_SIZE);
System\Linq\Parallel\Utils\ExchangeUtilities.cs (2)
89internal static PartitionedStream<Pair<TElement, THashKey>, int> HashRepartition<TElement, THashKey, TIgnoreKey>( 97internal static PartitionedStream<Pair<TElement, THashKey>, TOrderKey> HashRepartitionOrdered<TElement, THashKey, TOrderKey>(
System\Linq\Parallel\Utils\PairComparer.cs (3)
20internal sealed class PairComparer<T, U> : IComparer<Pair<T, U>> 31public int Compare(Pair<T, U> x, Pair<T, U> y)