# 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