title: Most efficient way to process a large csv in .NET
body: <p>Forgive my noobiness but I just need some guidance and I can't find another question that answers this.  I have a fairly large csv file (~300k rows) and I need to determine for a given input, whether any line in the csv begins with that input.  I have sorted the csv alphabetically, but I don't know:</p>
  
  <p>1) how to process the rows in the csv- should I read it in as a list/collection, or use OLEDB, or an embedded database or something else?</p>
  
  <p>2) how to find something efficiently from an alphabetical list (using the fact that it's sorted to speed things up, rather than searching the whole list)</p>