title: Should I always return IEnumerable<T> instead of IList<T>?
body: <p>When I'm writing my DAL or other code that returns a set of items, should I always make my return statement:</p>
  
  <pre><code>public IEnumerable&lt;FooBar&gt; GetRecentItems()
  </code></pre>
  
  <p>or </p>
  
  <pre><code>public IList&lt;FooBar&gt; GetRecentItems()
  </code></pre>
  
  <p>Currently, in my code I have been trying to use IEnumerable as much as possible but I'm not sure if this is best practice?  It seemed right because I was returning the most generic datatype while still being descriptive of what it does, but perhaps this isn't correct to do.</p>