# C1.LiveLinq.Indexing.Search.IIndexScanner-2.GroupJoin

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin*">GroupJoin Method
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin*"></a>
<h4 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__1__System_Func__0_System_Collections_Generic_IEnumerable___0____1__" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin``2(C1.LiveLinq.Indexing.Search.IIndexScanner{``0,`1},System.Func{`0,System.Collections.Generic.IEnumerable{``0},``1})">GroupJoin&lt;T2, TResult&gt;(IIndexScanner&lt;T2, TKey&gt;, Func&lt;T, IEnumerable&lt;T2&gt;, TResult&gt;)</h4>
<div class="markdown level1 summary"><p>Correlates the items of this indexed collection with the items of another indexed collection and groups the results by the item of this collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">IEnumerable&lt;TResult&gt; GroupJoin&lt;T2, TResult&gt;(IIndexScanner&lt;T2, TKey&gt; source, Func&lt;T, IEnumerable&lt;T2&gt;, TResult&gt; resultSelector)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Function GroupJoin(Of T2, TResult)(source As IIndexScanner(Of T2, TKey), resultSelector As Func(Of T, IEnumerable(Of T2), TResult)) As IEnumerable(Of TResult)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.html">IIndexScanner</a>&lt;T2, TKey&gt;</td>
      <td><span class="parametername">source</span></td>
      <td><p>The second indexed collection to join to this collection.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-3">Func</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T2&gt;, TResult&gt;</td>
      <td><span class="parametername">resultSelector</span></td>
      <td><p>A function to create a result element from an element from this collection and a collection of matching elements from the second collection.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;TResult&gt;</td>
      <td><p>Enumeration of objects obtained by applying the result selector to group pairs,
where each pair consists of an item of this collection and the corresponding enumeration of the items of the second collection joined to it.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span class="parametername">T2</span></td>
      <td><p>The type of the elements of the second collection.</p>
</td>
    </tr>
    <tr>
      <td><span class="parametername">TResult</span></td>
      <td><p>The type of the result elements.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__1__System_Func__0_System_Collections_Generic_IEnumerable___0____1___remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>Matching of two elements is performed by matching their keys.</p>
</div>


<a id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin*"></a>
<h4 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0__1__System_Func_System_Collections_Generic_IEnumerable__0____0___1__" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,`1},System.Func{System.Collections.Generic.IEnumerable{`0},``0,``1})">GroupJoin&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt;, Func&lt;T2, TKey&gt;, Func&lt;IEnumerable&lt;T&gt;, T2, TResult&gt;)</h4>
<div class="markdown level1 summary"><p>Correlates the items of this indexed collection with the items of another sequence and groups the results by the item of the second sequence.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">IEnumerable&lt;TResult&gt; GroupJoin&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt; source, Func&lt;T2, TKey&gt; keySelector, Func&lt;IEnumerable&lt;T&gt;, T2, TResult&gt; resultSelector)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Function GroupJoin(Of T2, TResult)(source As IEnumerable(Of T2), keySelector As Func(Of T2, TKey), resultSelector As Func(Of IEnumerable(Of T), T2, TResult)) As IEnumerable(Of TResult)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T2&gt;</td>
      <td><span class="parametername">source</span></td>
      <td><p>The second sequence to join to this collection.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T2, TKey&gt;</td>
      <td><span class="parametername">keySelector</span></td>
      <td><p>A function to extract from an item of the second sequence the value to match against this collection's key value.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-3">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;, T2, TResult&gt;</td>
      <td><span class="parametername">resultSelector</span></td>
      <td><p>A function to create a result element from an element of the second sequence and the collection of matching elements from this collection.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;TResult&gt;</td>
      <td><p>Enumeration of objects obtained by applying the result selector to group pairs,
where each pair consists of an item of the second collection and the corresponding enumeration of the items of this collection joined to it.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span class="parametername">T2</span></td>
      <td><p>The type of the elements of the second sequence.</p>
</td>
    </tr>
    <tr>
      <td><span class="parametername">TResult</span></td>
      <td><p>The type of the result elements.</p>
</td>
    </tr>
  </tbody>
</table>


<a id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin*"></a>
<h4 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0__1__System_Func__0_System_Collections_Generic_IEnumerable___0____1__" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.GroupJoin``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,`1},System.Func{`0,System.Collections.Generic.IEnumerable{``0},``1})">GroupJoin&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt;, Func&lt;T2, TKey&gt;, Func&lt;T, IEnumerable&lt;T2&gt;, TResult&gt;)</h4>
<div class="markdown level1 summary"><p>Correlates the items of this indexed collection with the items of another sequence and groups the results by the item of this collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">IEnumerable&lt;TResult&gt; GroupJoin&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt; source, Func&lt;T2, TKey&gt; keySelector, Func&lt;T, IEnumerable&lt;T2&gt;, TResult&gt; resultSelector)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Function GroupJoin(Of T2, TResult)(source As IEnumerable(Of T2), keySelector As Func(Of T2, TKey), resultSelector As Func(Of T, IEnumerable(Of T2), TResult)) As IEnumerable(Of TResult)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T2&gt;</td>
      <td><span class="parametername">source</span></td>
      <td><p>The second sequence to join to this collection.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T2, TKey&gt;</td>
      <td><span class="parametername">keySelector</span></td>
      <td><p>A function to extract from an item of the second sequence the value to match against this collection's key value.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-3">Func</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T2&gt;, TResult&gt;</td>
      <td><span class="parametername">resultSelector</span></td>
      <td><p>A function to create a result element from an element from this collection and a collection of matching elements from the second sequence.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;TResult&gt;</td>
      <td><p>Enumeration of objects obtained by applying the result selector to group pairs,
where each pair consists of an item of this collection and the corresponding enumeration of the items of the second sequence joined to it.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span class="parametername">T2</span></td>
      <td><p>The type of the elements of the second sequence.</p>
</td>
    </tr>
    <tr>
      <td><span class="parametername">TResult</span></td>
      <td><p>The type of the result elements.</p>
</td>
    </tr>
  </tbody>
</table>
</div>
