title: Why can't I edit elements of IEnumerable?
body: <p>I do something like this and the value in the collection doesn't change</p>
  
  <pre><code>                [Test]
                  public void EnumerableTest()
                  {
                      var source = GetFoos();
  
                      source.First().One = "hello";
  
                      Assert.AreEqual(source.First().One, "hello");
      //it fails
  
                  }
  
  //I actually return this from a repository
                  public IEnumerable&lt;Foo&gt; GetFoos()
                  {
                      yield return new Foo() {One = "1", Two = "2", Three = true};
                      yield return new Foo() {One = "1", Two = "2", Three = true};
                      yield return new Foo() {One = "1", Two = "2", Three = true};
                  }
  </code></pre>