2 instantiations of ConcatKey
System.Linq.Parallel (2)
System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs (2)
312
return new
ConcatKey
<TLeftKey, TRightKey>(leftKey, default, isLeft: true);
317
return new
ConcatKey
<TLeftKey, TRightKey>(default, rightKey, isLeft: false);
33 references to ConcatKey
System.Linq.Parallel (33)
System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs (13)
121
IComparer<
ConcatKey
<TLeftKey, TRightKey>> comparer =
ConcatKey
<TLeftKey, TRightKey>.MakeComparer(
123
var outputStream = new PartitionedStream<TSource,
ConcatKey
<TLeftKey, TRightKey>>(partitionCount, comparer, OrdinalIndexState);
158
private sealed class ConcatQueryOperatorEnumerator<TLeftKey, TRightKey> : QueryOperatorEnumerator<TSource,
ConcatKey
<TLeftKey, TRightKey>>
187
internal override bool MoveNext([MaybeNullWhen(false), AllowNull] ref TSource currentElement, ref
ConcatKey
<TLeftKey, TRightKey> currentKey)
199
currentKey =
ConcatKey
<TLeftKey, TRightKey>.MakeLeft(leftKey);
209
currentKey =
ConcatKey
<TLeftKey, TRightKey>.MakeRight(rightKey);
310
internal static
ConcatKey
<TLeftKey, TRightKey> MakeLeft([AllowNull] TLeftKey leftKey)
315
internal static
ConcatKey
<TLeftKey, TRightKey> MakeRight([AllowNull] TRightKey rightKey)
320
internal static IComparer<
ConcatKey
<TLeftKey, TRightKey>> MakeComparer(
332
private sealed class ConcatKeyComparer : IComparer<
ConcatKey
<TLeftKey, TRightKey>>
343
public int Compare(
ConcatKey
<TLeftKey, TRightKey> x,
ConcatKey
<TLeftKey, TRightKey> y)
System\Linq\Parallel\QueryOperators\Binary\UnionQueryOperator.cs (20)
125
IComparer<
ConcatKey
<TLeftKey, TRightKey>> compoundKeyComparer =
126
ConcatKey
<TLeftKey, TRightKey>.MakeComparer(leftHashStream.KeyComparer, rightHashStream.KeyComparer);
128
PartitionedStream<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>> outputStream =
129
new PartitionedStream<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>(partitionCount, compoundKeyComparer, OrdinalIndexState.Shuffled);
292
private sealed class OrderedUnionQueryOperatorEnumerator<TLeftKey, TRightKey> : QueryOperatorEnumerator<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>
296
private readonly IComparer<
ConcatKey
<TLeftKey, TRightKey>> _keyComparer; // Comparer for compound order keys.
298
private IEnumerator<KeyValuePair<Wrapper<TInputOutput>, Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>>>? _outputEnumerator; // Enumerator over the output of the union.
312
bool leftOrdered, bool rightOrdered, IEqualityComparer<TInputOutput>? comparer, IComparer<
ConcatKey
<TLeftKey, TRightKey>> keyComparer,
333
internal override bool MoveNext([MaybeNullWhen(false), AllowNull] ref TInputOutput currentElement, ref
ConcatKey
<TLeftKey, TRightKey> currentKey)
341
Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>> union =
342
new Dictionary<Wrapper<TInputOutput>, Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>>(wrapperComparer);
353
ConcatKey
<TLeftKey, TRightKey> key =
354
ConcatKey
<TLeftKey, TRightKey>.MakeLeft(_leftOrdered ? leftKey : default);
355
Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>> oldEntry;
360
union[wrappedElem] = new Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>(elem.First, key);
370
ConcatKey
<TLeftKey, TRightKey> key =
371
ConcatKey
<TLeftKey, TRightKey>.MakeRight(_rightOrdered ? rightKey : default);
372
Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>> oldEntry;
377
union[wrappedElem] = new Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>>(elem.First, key);
386
Pair<TInputOutput,
ConcatKey
<TLeftKey, TRightKey>> current = _outputEnumerator.Current.Value;