title: IEnumerable<T> considered harmful?
body: <p>I have inner tension regarding <code>IEnumerable&lt;T&gt;</code>.  On the one hand, I understand it is more generic than concrete collection types, such as arrays or lists, and for that reason Resharper is constantly prodding me to change my method parameters from <code>List&lt;T&gt;</code> or <code>T[]</code> to <code>IEnumerable&lt;T&gt;</code>.</p>
  <p>However, whenever I do that, more often than not, I <em>eventually</em> (after adding to the code) run into the dreaded <code>possible multiple enumeration</code> warning from that very same Resharper.  This forces me to declare another variable, which is often hard to name, just to store the result of a <code>.ToList()</code> or <code>.ToArray()</code> call, whose only purpose is to turn something that already was a list or array into another list or array.</p>
  <p>What's the best way to resolve this tension (besides uninstalling Resharper lol)?</p>