Click or drag to resize
MoreEnumerableFullGroupJoinTFirst, TSecond, TKey, TResult Method (IEnumerableTFirst, IEnumerableTSecond, FuncTFirst, TKey, FuncTSecond, TKey, FuncTKey, IEnumerableTFirst, IEnumerableTSecond, TResult, IEqualityComparerTKey)
Performs a Full Group Join between the first and second sequences.

Namespace: MoreLinq
Assembly: MoreLinq (in MoreLinq.dll) Version: 2.0.0
Syntax
public static IEnumerable<TResult> FullGroupJoin<TFirst, TSecond, TKey, TResult>(
	this IEnumerable<TFirst> first,
	IEnumerable<TSecond> second,
	Func<TFirst, TKey> firstKeySelector,
	Func<TSecond, TKey> secondKeySelector,
	Func<TKey, IEnumerable<TFirst>, IEnumerable<TSecond>, TResult> resultSelector,
	IEqualityComparer<TKey> comparer
)

Parameters

first
Type: System.Collections.GenericIEnumerableTFirst
First sequence
second
Type: System.Collections.GenericIEnumerableTSecond
Second sequence
firstKeySelector
Type: SystemFuncTFirst, TKey
The mapping from first sequence to key
secondKeySelector
Type: SystemFuncTSecond, TKey
The mapping from second sequence to key
resultSelector
Type: SystemFuncTKey, IEnumerableTFirst, IEnumerableTSecond, TResult
Function to apply to each pair of elements plus the key
comparer
Type: System.Collections.GenericIEqualityComparerTKey
The equality comparer to use to determine whether or not keys are equal. If null, the default equality comparer for TKey is used.

Type Parameters

TFirst
The type of the elements in the first input sequence
TSecond
The type of the elements in the first input sequence
TKey
The type of the key to use to join
TResult
The type of the elements of the resulting sequence

Return Value

Type: IEnumerableTResult
A sequence of elements joined from first and second.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerableTFirst. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).
Remarks
This operator uses deferred execution and streams the results. The results are yielded in the order of the elements found in the first sequence followed by those found only in the second. In addition, the callback responsible for projecting the results is supplied with sequences which preserve their source order.
See Also