CapyKit/Documentation/Help/M_CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4_2.md

60 lines
3.8 KiB
Markdown
Raw Normal View History

2024-04-21 03:30:36 -05:00
# LeftOuterJoin<T, U, TKey, R>(IQueryable<T>, IQueryable<U>, Expression<Func<T, TKey>>, Expression<Func<U, TKey>>, Expression<Func<T, IEnumerable<U>, R>>) Method
An IQueryable<T> extension method that left outer join.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions.md">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+735d7c4c91a8ae04c2d8cae4ce85ddf4909e5b7d
**C#**
``` C#
private static IQueryable<R> LeftOuterJoin<T, U, TKey, R>(
this IQueryable<T> source,
IQueryable<U> inner,
Expression<Func<T, TKey>> outerSelector,
Expression<Func<U, TKey>> innerSelector,
Expression<Func<T, IEnumerable<U>, R>> resultSelector
)
```
**F#**
``` F#
[<ExtensionAttribute>]
private static member LeftOuterJoin :
source : IQueryable<'T> *
inner : IQueryable<'U> *
outerSelector : Expression<Func<'T, 'TKey>> *
innerSelector : Expression<Func<'U, 'TKey>> *
resultSelector : Expression<Func<'T, IEnumerable<'U>, 'R>> -> IQueryable<'R>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(U)</dt><dd>The inner.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1" target="_blank" rel="noopener noreferrer">Expression</a>(<a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, TKey))</dt><dd>The outer selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1" target="_blank" rel="noopener noreferrer">Expression</a>(<a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(U, TKey))</dt><dd>The inner selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1" target="_blank" rel="noopener noreferrer">Expression</a>(<a href="https://learn.microsoft.com/dotnet/api/system.func-3" target="_blank" rel="noopener noreferrer">Func</a>(T, <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(U), R))</dt><dd>The result selector.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd><dt /><dd>Generic type parameter.</dd><dt /><dd>Type of the key.</dd><dt /><dd>Type of the r.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(R)
An IQueryable&lt;R&gt;
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions.md">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_LeftOuterJoin.md">LeftOuterJoin Overload</a>
<a href="N_CapyKit_Extensions.md">CapyKit.Extensions Namespace</a>