Deutsche Version
“Yield return” is a powerful and handy statement if you want to quickly and easily an iteratable list without creating an Array or a List first:
using System;
using System.Collections.Generic;
using System.Drawing;
class Program
{
static void Main()
{
var colors = Rainbow;
Console.WriteLine("colors.GetType(): {0}", colors.GetType());
Console.WriteLine();
foreach (Color color in colors)
{
Console.WriteLine(color.Name);
}
Console.ReadLine();
}
static IEnumerable<Color> Rainbow
{
get
{
yield return (Color.Red);
yield return (Color.Orange);
yield return (Color.Yellow);
yield return (Color.Green);
yield return (Color.LightBlue);
yield return (Color.Indigo);
yield return (Color.Violet);
}
}
}
Red
Orange
Yellow
Green
LightBlue
Indigo
Violet
The .NET compiler then creates the necessary IEnumerable- and IEnumerator-implementing classes and the state machine in the background and everything is fine and clear.
Read more