private IEnumerable<Foo> InnerCreateWithYield(Trouble trouble) { const int limit = 100; var count = 0; while (count < limit) { count++; if (trouble.GetNext() > limit) { yield break; } yield return new Foo {Name = "Foo" + count}; } }
private IEnumerable<Foo> CreateWithYield() { var trouble = new Trouble(); Assert.AreEqual(0, trouble.Count); return InnerCreateWithYield(trouble); }