# C1.LiveLinq.Indexing.Index-1

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_LiveLinq_Indexing_Index_1" data-uid="C1.LiveLinq.Indexing.Index`1" class="text-break">Index&lt;T&gt; Class
</h1>
  <div class="markdown level0 summary"><p>Base class for the <a class="xref" href="C1.LiveLinq.Indexing.Index-2.html">Index&lt;T, TKey&gt;</a> class.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="C1.LiveLinq.Indexing.IndexDefinition-1.html">IndexDefinition</a>&lt;T&gt;</div>
    <div class="level2"><span class="xref">Index&lt;T&gt;</span></div>
      <div class="level3"><a class="xref" href="C1.LiveLinq.Indexing.Index-2.html">Index</a>&lt;T, TKey&gt;</div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.html">IIndexScanner</a>&lt;T&gt;</div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.LiveLinq.Indexing.html">C1.LiveLinq.Indexing</a></h6>
  <h6><strong>Assembly</strong>: C1.LiveLinq.4.8.dll</h6>
  <h5 id="C1_LiveLinq_Indexing_Index_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class Index&lt;T&gt; : IndexDefinition&lt;T&gt;, IIndexScanner&lt;T&gt;</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class Index(Of T)
    Inherits IndexDefinition(Of T)
    Implements 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 collection to index.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="C1_LiveLinq_Indexing_Index_1_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>You don't typically use the <b>Index&lt;T&gt;</b> class directly. It provides functionality of the <a class="xref" href="C1.LiveLinq.Indexing.Index-2.html">Index&lt;T, TKey&gt;</a> class that does not depend on the
index key type. The base class <b>Index&lt;T&gt;</b> is needed only if the index key type is not known, usually in general-purpose code intended for reuse with different key types.</p>
</div>
  <h3 id="properties">Properties
</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_Index_1_ItemCount" data-uid="C1.LiveLinq.Indexing.Index`1.ItemCount">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.ItemCount.html#C1_LiveLinq_Indexing_Index_1_ItemCount">ItemCount</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the number of elements in the indexed collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_KeyCount" data-uid="C1.LiveLinq.Indexing.Index`1.KeyCount">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.KeyCount.html#C1_LiveLinq_Indexing_Index_1_KeyCount">KeyCount</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the number of distinct key values in all items of this collection.</p>
</td>
      </tr>
    </tbody>
  </table>
  <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_Index_1_ContainsKey_System_Object_" data-uid="C1.LiveLinq.Indexing.Index`1.ContainsKey(System.Object)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.ContainsKey.html#C1_LiveLinq_Indexing_Index_1_ContainsKey_System_Object_">ContainsKey(object)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns a value that indicates whether the indexed collection contains an item with the given key value.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.ContainsKey.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_ContainsKey_System_Object_">IIndexScanner(T).ContainsKey(object)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_Find_System_Object_" data-uid="C1.LiveLinq.Indexing.Index`1.Find(System.Object)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.Find.html#C1_LiveLinq_Indexing_Index_1_Find_System_Object_">Find(object)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with the specified key value.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.Find.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_Find_System_Object_">IIndexScanner(T).Find(object)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_FindBetween_System_Object_System_Boolean_System_Object_System_Boolean_C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Index`1.FindBetween(System.Object,System.Boolean,System.Object,System.Boolean,C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.FindBetween.html#C1_LiveLinq_Indexing_Index_1_FindBetween_System_Object_System_Boolean_System_Object_System_Boolean_C1_LiveLinq_Order_">FindBetween(object, bool, object, bool, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with key values in the interval between the specified values.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.FindBetween.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_FindBetween_System_Object_System_Boolean_System_Object_System_Boolean_C1_LiveLinq_Order_">IIndexScanner(T).FindBetween(object,bool,object,bool,Order)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_FindGreater_System_Object_System_Boolean_C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Index`1.FindGreater(System.Object,System.Boolean,C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.FindGreater.html#C1_LiveLinq_Indexing_Index_1_FindGreater_System_Object_System_Boolean_C1_LiveLinq_Order_">FindGreater(object, bool, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with keys greater than the specified value.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.FindGreater.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_FindGreater_System_Object_System_Boolean_C1_LiveLinq_Order_">IIndexScanner(T).FindGreater(object,bool,Order)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_FindKeys_System_Collections_IEnumerable_C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Index`1.FindKeys(System.Collections.IEnumerable,C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.FindKeys.html#C1_LiveLinq_Indexing_Index_1_FindKeys_System_Collections_IEnumerable_C1_LiveLinq_Order_">FindKeys(IEnumerable, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items containing any of the specified key values.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.FindKeys.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_FindKeys_System_Collections_IEnumerable_C1_LiveLinq_Order_">FindKeys(IEnumerable,Order)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_FindLess_System_Object_System_Boolean_C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Index`1.FindLess(System.Object,System.Boolean,C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.FindLess.html#C1_LiveLinq_Indexing_Index_1_FindLess_System_Object_System_Boolean_C1_LiveLinq_Order_">FindLess(object, bool, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with keys less than the specified value.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.FindLess.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_FindLess_System_Object_System_Boolean_C1_LiveLinq_Order_">IIndexScanner(T).FindLess(object,bool,Order)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_FindStartingWith_System_String_System_Func_System_String_System_Boolean__C1_LiveLinq_Order_" data-uid="C1.LiveLinq.Indexing.Index`1.FindStartingWith(System.String,System.Func{System.String,System.Boolean},C1.LiveLinq.Order)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.FindStartingWith.html#C1_LiveLinq_Indexing_Index_1_FindStartingWith_System_String_System_Func_System_String_System_Boolean__C1_LiveLinq_Order_">FindStartingWith(string, Func&lt;string, bool&gt;, Order)</a>
        </td>
        <td class="markdown level1 summary"><p>Finds items with string key values starting with the specified string.</p>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.FindStartingWith.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_FindStartingWith_System_String_System_Func_System_String_System_Boolean__C1_LiveLinq_Order_">IIndexScanner(T).FindStartingWith(string,Func(string, bool),Order)</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_GroupJoin__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__System_Func__0_System_Collections_Generic_IEnumerable___0____1__" data-uid="C1.LiveLinq.Indexing.Index`1.GroupJoin``2(C1.LiveLinq.Indexing.Search.IIndexScanner{``0},System.Func{`0,System.Collections.Generic.IEnumerable{``0},``1})">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.GroupJoin.html#C1_LiveLinq_Indexing_Index_1_GroupJoin__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__System_Func__0_System_Collections_Generic_IEnumerable___0____1__">GroupJoin&lt;T2, TResult&gt;(IIndexScanner&lt;T2&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>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.GroupJoin.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_GroupJoin__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__System_Func__0_System_Collections_Generic_IEnumerable___0____1__">IIndexScanner(T).GroupJoin</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func_System_Collections_Generic_IEnumerable__0____0___1__" data-uid="C1.LiveLinq.Indexing.Index`1.GroupJoin``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Object},System.Func{System.Collections.Generic.IEnumerable{`0},``0,``1})">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.GroupJoin.html#C1_LiveLinq_Indexing_Index_1_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func_System_Collections_Generic_IEnumerable__0____0___1__">GroupJoin&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt;, Func&lt;T2, object&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>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.GroupJoin.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func_System_Collections_Generic_IEnumerable__0____0___1__">IIndexScanner(T).GroupJoin</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func__0_System_Collections_Generic_IEnumerable___0____1__" data-uid="C1.LiveLinq.Indexing.Index`1.GroupJoin``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Object},System.Func{`0,System.Collections.Generic.IEnumerable{``0},``1})">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.GroupJoin.html#C1_LiveLinq_Indexing_Index_1_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func__0_System_Collections_Generic_IEnumerable___0____1__">GroupJoin&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt;, Func&lt;T2, object&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>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.GroupJoin.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_GroupJoin__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func__0_System_Collections_Generic_IEnumerable___0____1__">IIndexScanner(T).GroupJoin</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_Join__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_" data-uid="C1.LiveLinq.Indexing.Index`1.Join``2(C1.LiveLinq.Indexing.Search.IIndexScanner{``0},System.Func{`0,``0,``1},C1.LiveLinq.Indexing.Search.JoinOperator)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.Join.html#C1_LiveLinq_Indexing_Index_1_Join__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_">Join&lt;T2, TResult&gt;(IIndexScanner&lt;T2&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>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.Join.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_Join__2_C1_LiveLinq_Indexing_Search_IIndexScanner___0__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_">IIndexScanner(T).Join</a></p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_Indexing_Index_1_Join__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_" data-uid="C1.LiveLinq.Indexing.Index`1.Join``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Object},System.Func{`0,``0,``1},C1.LiveLinq.Indexing.Search.JoinOperator)">
          <a class="xref" href="C1.LiveLinq.Indexing.Index-1.Join.html#C1_LiveLinq_Indexing_Index_1_Join__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_">Join&lt;T2, TResult&gt;(IEnumerable&lt;T2&gt;, Func&lt;T2, object&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>
<p>Implements <a class="xref" href="C1.LiveLinq.Indexing.Search.IIndexScanner-1.Join.html#C1_LiveLinq_Indexing_Search_IIndexScanner_1_Join__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Object__System_Func__0___0___1__C1_LiveLinq_Indexing_Search_JoinOperator_">IIndexScanner(T).Join</a></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>
  <h3 id="seealso">See Also</h3>
  <div class="seealso">
      <div><a class="xref" href="C1.LiveLinq.Indexing.Index-2.html">Index</a>&lt;T, TKey&gt;</div>
  </div>

</div>
