Yield keyword in c#

The yield keyword effectively creates a lazy enumeration over collection items that can be much more efficient. 

Traditional way to return Ienumerator

IEnumerable<int> getnumber()
{
var i = 0; var list = new List<int>();
while (i<5)
list.Add(++i); return list;
}
foreach(var number in getnumber()) Console.WriteLine(number);

Loop with Yield

IEnumerable<int> getnumber()
{
var i = 0;
while (i<5) yield return ++i;
}
foreach(var number in getnumber()) Console.WriteLine(number);

Leave a comment