title: How is transforming this iterator block a functional change?
body: <p>Given the following code snippet:</p>
  
  <pre><code>public class Foo
  {
      public IEnumerable&lt;string&gt; Sequence { get; set; }
      public IEnumerable&lt;string&gt; Bar()
      {
          foreach (string s in Sequence)
              yield return s;
      }
  }
  </code></pre>
  
  <p>is the following snippet semantically equivalent, or is it different?  If it is different, how do they function differently?</p>
  
  <pre><code>public class Foo2
  {
      public IEnumerable&lt;string&gt; Sequence { get; set; }
      public IEnumerable&lt;string&gt; Bar2()
      {
          return Sequence;
      }
  }
  </code></pre>
  
  <p>This question is inspired by <a href="https://stackoverflow.com/q/25514736/1159478">this question</a> which is asking a different question about a similar situation.</p>