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

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2" class="text-break">IIndexScanner&lt;T, TKey&gt; Interface
</h1>
  <div class="markdown level0 summary"><p>Represents an index or a subindex in its capacity of scanning through data. Provides methods for searching data items.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.LiveLinq.Indexing.Search.html">C1.LiveLinq.Indexing.Search</a></h6>
  <h6><strong>Assembly</strong>: C1.LiveLinq.4.8.dll</h6>
  <h5 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface IIndexScanner&lt;T, TKey&gt; : IIndexScanner&lt;T&gt;</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Interface IIndexScanner(Of T, TKey)
    Inherits IIndexScanner(Of T)</code></pre>
  </div>
  <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">T</span></td>
        <td><p>The type of the elements of the indexed collection.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>The type of the index key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>This interface is implemented by <a class="xref" href="C1.LiveLinq.Indexing.Index-2.html">Index&lt;T, TKey&gt;</a>. It is also used by subindexes, but there it is not directly implemented by 
<a class="xref" href="C1.LiveLinq.Indexing.Subindex-2.html">Subindex&lt;T, TKey&gt;</a>, but rather returned by the <a class="xref" href="C1.LiveLinq.Indexing.Search.IndexQuery-1.Subindex.html#C1_LiveLinq_Indexing_Search_IndexQuery_1_Subindex_C1_LiveLinq_Indexing_Subindex__0__">IndexQuery&lt;T&gt;.Subindex</a> method because it depends on 
the item found by an index or a subindex that is the parent of that subindex.</p>
<p><a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.html">IIndexScanner&lt;T, TKey&gt;</a> has an untyped key counterpart <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.html">IIndexScanner&lt;T&gt;</a>
that is used with untyped key classes <a class="xref" href="C1.LiveLinq.Indexing.Index-1.html">Index&lt;T&gt;</a> and <a class="xref" href="C1.LiveLinq.Indexing.Subindex-1.html">Subindex&lt;T&gt;</a></p>
</div>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_All_C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.All(C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.All.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_All_C1_LiveLinq_Order_">All(Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets all items in the indexed collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_ContainsKey__1_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.ContainsKey(`1)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.ContainsKey.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_ContainsKey__1_">ContainsKey(TKey)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns a value that indicates whether the collection contains an item with the given key value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_Find__1_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.Find(`1)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.Find.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_Find__1_">Find(TKey)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with the specified key value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindBetween__1_System_Boolean__1_System_Boolean_System_Func__1_System_Boolean__C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.FindBetween(`1,System.Boolean,`1,System.Boolean,System.Func{`1,System.Boolean},C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.FindBetween.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindBetween__1_System_Boolean__1_System_Boolean_System_Func__1_System_Boolean__C1_LiveLinq_Order_">FindBetween(TKey, bool, TKey, bool, Func&lt;TKey, bool&gt;, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with key values in the interval between the specified values.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindGreater__1_System_Boolean_System_Func__1_System_Boolean__C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.FindGreater(`1,System.Boolean,System.Func{`1,System.Boolean},C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.FindGreater.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindGreater__1_System_Boolean_System_Func__1_System_Boolean__C1_LiveLinq_Order_">FindGreater(TKey, bool, Func&lt;TKey, bool&gt;, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with keys greater than the specified value.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindKeys_System_Collections_Generic_IEnumerable__1__C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.FindKeys(System.Collections.Generic.IEnumerable{`1},C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.FindKeys.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindKeys_System_Collections_Generic_IEnumerable__1__C1_LiveLinq_Order_">FindKeys(IEnumerable&lt;TKey&gt;, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items containing any of the specified key values.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindLess__1_System_Boolean_System_Func__1_System_Boolean__C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.FindLess(`1,System.Boolean,System.Func{`1,System.Boolean},C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.FindLess.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_FindLess__1_System_Boolean_System_Func__1_System_Boolean__C1_LiveLinq_Order_">FindLess(TKey, bool, Func&lt;TKey, bool&gt;, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with keys less than the specified value.</p>
</td>
      </tr>
      <tr>
        <td 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})">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.GroupJoin.html#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;)</a>
        </td>
        <td 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>
</td>
      </tr>
      <tr>
        <td 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})">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.GroupJoin.html#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;)</a>
        </td>
        <td 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>
</td>
      </tr>
      <tr>
        <td 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})">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.GroupJoin.html#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;)</a>
        </td>
        <td 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>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_Join__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__1__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.Join``2(C1.LiveLinq.Indexing.Search.IIndexScanner{``0,`1},System.Func{`0,``0,``1},C1.LiveLinq.Indexing.Search.JoinOperator)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.Join.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_Join__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__1__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_">Join&lt;T2, TResult&gt;(IIndexScanner&lt;T2, TKey&gt;, Func&lt;T, T2, TResult&gt;, JoinOperator)</a>
        </td>
        <td class="markdown level1 summary"><p>Correlates the items of this indexed collection with the items of another indexed collection and returns the combined items with matching keys.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_Join__2_System_Collections_Generic_IEnumerable___0__System_Func___0__1__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.Join``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,`1},System.Func{`0,``0,``1},C1.LiveLinq.Indexing.Search.JoinOperator)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.Join.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_Join__2_System_Collections_Generic_IEnumerable___0__System_Func___0__1__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_">Join&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt;, Func&lt;T2, TKey&gt;, Func&lt;T, T2, TResult&gt;, JoinOperator)</a>
        </td>
        <td class="markdown level1 summary"><p>Correlates the items of this indexed collection with the items of another sequence and returns the combined items with matching keys.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Search_IIndexScanner_2_Keys_C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Search.IIndexScanner`2.Keys(C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-2.Keys.html#C1_LiveLinq_Indexing_Search_IIndexScanner_2_Keys_C1_LiveLinq_Order_">Keys(Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets distinct key values in all items of this collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="extensionmethods">Extension Methods</h3>
  <div>
      <a class="xref" href="C1.LiveLinq.Hints.Indexed.html#C1_LiveLinq_Hints_Indexed__1___0_">Hints.Indexed&lt;T&gt;(T)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.Hints.Indexed.html#C1_LiveLinq_Hints_Indexed__1___0_C1_LiveLinq_IndexingHintAction_">Hints.Indexed&lt;T&gt;(T, IndexingHintAction)</a>
  </div>

</div>
