title: Is there ever a reason to not use 'yield return' when returning an IEnumerable?
body: <p>Simple example - you have a method or a property that returns an IEnumerable and the caller is iterating over that in a foreach() loop.  Should you <em>always</em> be using 'yield return' in your IEnumerable method?  Is there ever a reason not to?  While I understand that it may not always be necessary to, or even "better" (maybe it's a very small collection for example), is there ever a reason to actively avoid doing this?</p>
  
  <p>The bit of code that got me thinking about this was a function I wrote very similar to the accepted answer in this thread - <a href="https://stackoverflow.com/questions/1847580/how-do-i-loop-through-a-date-range">How do I loop through a date range?</a></p>