# LeftOuterJoin<T, U, TKey, R>(IQueryable<T>, IQueryable<U>, Expression<Func<T, TKey>>, Expression<Func<U, TKey>>, Func<T, IEnumerable<U>, R>, Func<T, U>) Method
An IQueryable<T> extension method that left outer join.
## Definition
**Namespace:** CapyKit.Extensions
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.2
**C#**
``` C#
public static IQueryable LeftOuterJoin(
this IQueryable source,
IQueryable inner,
Expression> outerSelector,
Expression> innerSelector,
Func, R> resultSelector,
Func defaultGenerator = null
)
```
**F#**
``` F#
[]
static member LeftOuterJoin :
source : IQueryable<'T> *
inner : IQueryable<'U> *
outerSelector : Expression> *
innerSelector : Expression> *
resultSelector : Func<'T, IEnumerable<'U>, 'R> *
?defaultGenerator : Func<'T, 'U>
(* Defaults:
let _defaultGenerator = defaultArg defaultGenerator null
*)
-> IQueryable<'R>
```
#### Parameters
- IQueryable(T)
- The source to act on.
- IQueryable(U)
- The inner.
- Expression(Func(T, TKey))
- The outer selector.
- Expression(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
IQueryable(R)
An IQueryable<R>
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type IQueryable(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