# LeftOuterJoin<T, U, TKey, R>(IEnumerable<T>, IEnumerable<U>, Func<T, TKey>, Func<U, TKey>, Func<T, IEnumerable<U>, R>, Func<T, U>) Method
An IEnumable<T> extension method that left outer join.
## Definition
**Namespace:** CapyKit.Extensions
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.2
**C#**
``` C#
public static IEnumerable LeftOuterJoin(
this IEnumerable source,
IEnumerable inner,
Func outerSelector,
Func innerSelector,
Func, R> resultSelector,
Func defaultGenerator = null
)
```
**F#**
``` F#
[]
static member LeftOuterJoin :
source : IEnumerable<'T> *
inner : IEnumerable<'U> *
outerSelector : Func<'T, 'TKey> *
innerSelector : Func<'U, 'TKey> *
resultSelector : Func<'T, IEnumerable<'U>, 'R> *
?defaultGenerator : Func<'T, 'U>
(* Defaults:
let _defaultGenerator = defaultArg defaultGenerator null
*)
-> IEnumerable<'R>
```
#### Parameters
- IEnumerable(T)
- The source to act on.
- IEnumerable(U)
- The inner.
- Func(T, TKey)
- The outer selector.
- Func(U, TKey)
- The inner selector.
- Func(T, IEnumerable(U), R)
- The result selector.
- Func(T, U) (Optional)
- (Optional) The default generator.
#### Type Parameters
- Generic type parameter.
- Generic type parameter.
- Type of the key.
- Type of the r.
#### Return Value
IEnumerable(R)
An enumerator that allows foreach to be used to process left outter join in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable(T). 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).
## See Also
#### Reference
LINQExtensions Class
LeftOuterJoin Overload
CapyKit.Extensions Namespace