title: Best Implementation of "Sql Table index" on a .net list
body: <p>In SQL you can apply an index on a table, by that the table is sorted behind the scenes by these columns, which makes inserting and updating more slow, yet selecting by that column is much faster,</p>
  
  <p>Is there a way to implement, or what is the best way to implement such format on a .net List (of course the column is the object's property)</p>
  
  <p>What i came in mind so far :</p>
  
  <ol>
  <li><p>I know that if i would sort the list by some property i could
  implement my own "binary search by" that property using the
  binary-search of .net list.</p></li>
  <li><p>I could also create a dictionary of the column i wish to index, and
  the values would be the items that match it, or some reference to them.</p></li>
  </ol>
  
  <p>Yet these solutions only create a "1 column" indexing implementation, i know i can use a dictionary of dictionaries and than have a "2 columns" one, yet i assume that there must be something else over there to make a more generic solution for this issue.</p>
  
  <p>Is there ?</p>