title: Which IEnumerable To a List way is better?
body: <p>I am wondering about the following fact. I have a data repository that returns all my data of <code>IEnumerable&lt;Customer&gt;</code>. </p>
  
  <p>In my business logic sometimes I need lists so I can add stuff for example. </p>
  
  <p>When I retrieve the <code>IEnumerable&lt;Customer&gt;</code> I have 2 options to get a list from it.</p>
  
  <p>Either using the Linq extension method <code>.ToList()</code> or cast it (I think its not a conversion) like this <code>(List&lt;Customer&gt;)IEnumerable&lt;Customer&gt;</code>. </p>
  
  <p>Must mention that I don't use the list for iterations so I don't need a new copy of my enumeration each time. In this case is it true that in my simple case I must use the cast method instead of <code>.ToList</code> (which creates a new copy) ?</p>
  
  <pre><code>// use simple cast?
  List&lt;Customer&gt; customers = (List&lt;Customers&gt;)DataSource.GetCustomers(); 
  
  // or if i use this i get a bit of performance loss?
  List&lt;Customer&gt; customers = DataSource.GetCustomers().ToList(); 
  </code></pre>