# C1.LiveLinq.Indexing.IIndexedSource-1

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_LiveLinq_Indexing_IIndexedSource_1" data-uid="C1.LiveLinq.Indexing.IIndexedSource`1" class="text-break">IIndexedSource&lt;T&gt; Interface
</h1>
  <div class="markdown level0 summary"><p>Represents an indexed collection.</p>
</div>
  <div class="markdown level0 conceptual"></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_IIndexedSource_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface IIndexedSource&lt;T&gt; : IEnumerable&lt;T&gt;, IEnumerable</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Interface IIndexedSource(Of T)
    Inherits IEnumerable(Of T), IEnumerable</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.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="C1_LiveLinq_Indexing_IIndexedSource_1_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>An indexed collection has a collection of indexes, <a class="xref" href="C1.LiveLinq.Indexing.ScannerCollection-1.html">ScannerCollection&lt;T&gt;</a> that are maintained
up-to-date on every change made to the collection.</p>
<p>This interface is implemented by all main LiveLinq collection classes: <a class="xref" href="C1.LiveLinq.Collections.IndexedCollection-1.html">IndexedCollection&lt;T&gt;</a>,
<a class="xref" href="C1.LiveLinq.AdoNet.IndexedDataTable-1.html">IndexedDataTable&lt;TRow&gt;</a>, <a class="xref" href="C1.LiveLinq.LiveViews.View-1.html">View&lt;T&gt;</a>.</p>
<p>You need to implement this interface only if you want to define your own indexable collection classes 
and then only if they don't inherit from <a class="xref" href="C1.LiveLinq.Collections.IndexedCollection-1.html">IndexedCollection&lt;T&gt;</a>,
see <span style="C1H Jump">LiveLinq to Objects: IndexedCollection(T) and other collection classes</span>.</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_IIndexedSource_1_Indexes" data-uid="C1.LiveLinq.Indexing.IIndexedSource`1.Indexes">
          <a class="xref" href="C1.LiveLinq.Indexing.IIndexedSource-1.Indexes.html#C1_LiveLinq_Indexing_IIndexedSource_1_Indexes">Indexes</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the collection of indexes attached to 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>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.AsIndexed.html#C1_LiveLinq_IndexedQueryExtensions_AsIndexed__1_C1_LiveLinq_Indexing_IIndexedSource___0__">IndexedQueryExtensions.AsIndexed&lt;T&gt;(IIndexedSource&lt;T&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.GroupBy.html#C1_LiveLinq_IndexedQueryExtensions_GroupBy__2_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___">IndexedQueryExtensions.GroupBy&lt;TSource, TKey&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, TKey&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.GroupBy.html#C1_LiveLinq_IndexedQueryExtensions_GroupBy__3_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___System_Linq_Expressions_Expression_System_Func___1_System_Collections_Generic_IEnumerable___0____2___">IndexedQueryExtensions.GroupBy&lt;TSource, TKey, TResult&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, TKey&gt;&gt;, Expression&lt;Func&lt;TKey, IEnumerable&lt;TSource&gt;, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.GroupBy.html#C1_LiveLinq_IndexedQueryExtensions_GroupBy__3_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___System_Linq_Expressions_Expression_System_Func___0___2___">IndexedQueryExtensions.GroupBy&lt;TSource, TKey, TElement&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, TKey&gt;&gt;, Expression&lt;Func&lt;TSource, TElement&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.GroupBy.html#C1_LiveLinq_IndexedQueryExtensions_GroupBy__4_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___System_Linq_Expressions_Expression_System_Func___0___2___System_Linq_Expressions_Expression_System_Func___1_System_Collections_Generic_IEnumerable___2____3___">IndexedQueryExtensions.GroupBy&lt;TSource, TKey, TElement, TResult&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, TKey&gt;&gt;, Expression&lt;Func&lt;TSource, TElement&gt;&gt;, Expression&lt;Func&lt;TKey, IEnumerable&lt;TElement&gt;, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.GroupJoin.html#C1_LiveLinq_IndexedQueryExtensions_GroupJoin__4_C1_LiveLinq_Indexing_IIndexedSource___0__System_Collections_Generic_IEnumerable___1__System_Linq_Expressions_Expression_System_Func___0___2___System_Linq_Expressions_Expression_System_Func___1___2___System_Linq_Expressions_Expression_System_Func___0_System_Collections_Generic_IEnumerable___1____3___">IndexedQueryExtensions.GroupJoin&lt;TOuter, TInner, TKey, TResult&gt;(IIndexedSource&lt;TOuter&gt;, IEnumerable&lt;TInner&gt;, Expression&lt;Func&lt;TOuter, TKey&gt;&gt;, Expression&lt;Func&lt;TInner, TKey&gt;&gt;, Expression&lt;Func&lt;TOuter, IEnumerable&lt;TInner&gt;, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.Join.html#C1_LiveLinq_IndexedQueryExtensions_Join__4_C1_LiveLinq_Indexing_IIndexedSource___0__C1_LiveLinq_Indexing_IIndexedSource___1__System_Linq_Expressions_Expression_System_Func___0___2___System_Linq_Expressions_Expression_System_Func___1___2___System_Linq_Expressions_Expression_System_Func___0___1___3___">IndexedQueryExtensions.Join&lt;TOuter, TInner, TKey, TResult&gt;(IIndexedSource&lt;TOuter&gt;, IIndexedSource&lt;TInner&gt;, Expression&lt;Func&lt;TOuter, TKey&gt;&gt;, Expression&lt;Func&lt;TInner, TKey&gt;&gt;, Expression&lt;Func&lt;TOuter, TInner, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.Join.html#C1_LiveLinq_IndexedQueryExtensions_Join__4_C1_LiveLinq_Indexing_IIndexedSource___0__System_Collections_Generic_IEnumerable___1__System_Linq_Expressions_Expression_System_Func___0___2___System_Linq_Expressions_Expression_System_Func___1___2___System_Linq_Expressions_Expression_System_Func___0___1___3___">IndexedQueryExtensions.Join&lt;TOuter, TInner, TKey, TResult&gt;(IIndexedSource&lt;TOuter&gt;, IEnumerable&lt;TInner&gt;, Expression&lt;Func&lt;TOuter, TKey&gt;&gt;, Expression&lt;Func&lt;TInner, TKey&gt;&gt;, Expression&lt;Func&lt;TOuter, TInner, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.OrderByDescending.html#C1_LiveLinq_IndexedQueryExtensions_OrderByDescending__2_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___">IndexedQueryExtensions.OrderByDescending&lt;T, TKey&gt;(IIndexedSource&lt;T&gt;, Expression&lt;Func&lt;T, TKey&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.OrderBy.html#C1_LiveLinq_IndexedQueryExtensions_OrderBy__2_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___">IndexedQueryExtensions.OrderBy&lt;T, TKey&gt;(IIndexedSource&lt;T&gt;, Expression&lt;Func&lt;T, TKey&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.SelectMany.html#C1_LiveLinq_IndexedQueryExtensions_SelectMany__2_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0_System_Collections_Generic_IEnumerable___1____">IndexedQueryExtensions.SelectMany&lt;TSource, TResult&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, IEnumerable&lt;TResult&gt;&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.SelectMany.html#C1_LiveLinq_IndexedQueryExtensions_SelectMany__3_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0_System_Collections_Generic_IEnumerable___1____System_Linq_Expressions_Expression_System_Func___0___1___2___">IndexedQueryExtensions.SelectMany&lt;TSource, TCollection, TResult&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, IEnumerable&lt;TCollection&gt;&gt;&gt;, Expression&lt;Func&lt;TSource, TCollection, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.Select.html#C1_LiveLinq_IndexedQueryExtensions_Select__2_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0___1___">IndexedQueryExtensions.Select&lt;TSource, TResult&gt;(IIndexedSource&lt;TSource&gt;, Expression&lt;Func&lt;TSource, TResult&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.Where.html#C1_LiveLinq_IndexedQueryExtensions_Where__1_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0_System_Boolean___">IndexedQueryExtensions.Where&lt;T&gt;(IIndexedSource&lt;T&gt;, Expression&lt;Func&lt;T, bool&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.Where.html#C1_LiveLinq_IndexedQueryExtensions_Where__1_C1_LiveLinq_Indexing_IIndexedSource___0__System_Linq_Expressions_Expression_System_Func___0_System_Boolean___System_Boolean_">IndexedQueryExtensions.Where&lt;T&gt;(IIndexedSource&lt;T&gt;, Expression&lt;Func&lt;T, bool&gt;&gt;, bool)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.IndexedQueryExtensions.Join.html#C1_LiveLinq_IndexedQueryExtensions_Join__4_System_Collections_Generic_IEnumerable___0__C1_LiveLinq_Indexing_IIndexedSource___1__System_Linq_Expressions_Expression_System_Func___0___2___System_Linq_Expressions_Expression_System_Func___1___2___System_Linq_Expressions_Expression_System_Func___0___1___3___">IndexedQueryExtensions.Join&lt;TOuter, TInner, TKey, TResult&gt;(IEnumerable&lt;TOuter&gt;, IIndexedSource&lt;TInner&gt;, Expression&lt;Func&lt;TOuter, TKey&gt;&gt;, Expression&lt;Func&lt;TInner, TKey&gt;&gt;, Expression&lt;Func&lt;TOuter, TInner, TResult&gt;&gt;)</a>
  </div>

</div>
