MoreEnumerableFullGroupJoinTFirst, TSecond, TKey, TResult Method (IEnumerableTFirst, IEnumerableTSecond, FuncTFirst, TKey, FuncTSecond, TKey, FuncTKey, IEnumerableTFirst, IEnumerableTSecond, TResult) | 
 
            Performs a Full Group Join between the first and second sequences.
            
 
    Namespace: 
   MoreLinq
    Assembly:
   MoreLinq (in MoreLinq.dll) Version: 2.5.0
Syntaxpublic 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
)
<ExtensionAttribute>
Public Shared Function FullGroupJoin(Of TFirst, TSecond, TKey, TResult) ( 
	first As IEnumerable(Of TFirst),
	second As IEnumerable(Of TSecond),
	firstKeySelector As Func(Of TFirst, TKey),
	secondKeySelector As Func(Of TSecond, TKey),
	resultSelector As Func(Of TKey, IEnumerable(Of TFirst), IEnumerable(Of TSecond), TResult)
) As IEnumerable(Of TResult)
public:
[ExtensionAttribute]
generic<typename TFirst, typename TSecond, typename TKey, typename TResult>
static IEnumerable<TResult>^ FullGroupJoin(
	IEnumerable<TFirst>^ first, 
	IEnumerable<TSecond>^ second, 
	Func<TFirst, TKey>^ firstKeySelector, 
	Func<TSecond, TKey>^ secondKeySelector, 
	Func<TKey, IEnumerable<TFirst>^, IEnumerable<TSecond>^, TResult>^ resultSelector
)
[<ExtensionAttribute>]
static member FullGroupJoin : 
        first : IEnumerable<'TFirst> * 
        second : IEnumerable<'TSecond> * 
        firstKeySelector : Func<'TFirst, 'TKey> * 
        secondKeySelector : Func<'TSecond, 'TKey> * 
        resultSelector : Func<'TKey, IEnumerable<'TFirst>, IEnumerable<'TSecond>, 'TResult> -> IEnumerable<'TResult> 
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 
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: 
IEnumerableTResultA 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