title: Using ToList() on Enumerable LINQ query results for large data sets - Efficiency Issue?
body: <p>I've been making a lot of use of LINQ queries in the application I'm currently writing, and one of the situations that I keep running into is having to convert the LINQ query results into lists for further processing (I have my reasons for wanting lists).</p>
  
  <p>I'd like to have a better understanding of what happens in this list conversion in case there are inefficiencies since I've used it repeatedly now.  So, given I execute a line line like this:</p>
  
  <pre><code>var matches = (from x in list1 join y in list2 on x equals y select x).ToList();
  </code></pre>
  
  <p><strong>Questions:</strong></p>
  
  <ol>
  <li><p>Is there any overhead here aside from the creation of a new list and its population with references to the elements in the Enumerable returned from the query?</p></li>
  <li><p>Would you consider this inefficient?</p></li>
  <li><p>Is there a way to get the LINQ query to directly generate a list to avoid the need for a conversion in this circumstance?</p></li>
  </ol>