C# yield
A expressão yield é bastante útil quando queremos os valores de um método que retorna um IEnumerable ou IEnumerator.
Para retornarmos os valores entre o intervalo passado como parâmetro no método GetValuesFromInterval() teriamos algo assim:
static IEnumerable<int> GetValuesFromInterval(int min, int max) { List<int> intervalo = new List<int>(); for (int i = min+1; i < max; i++) { intervalo.Add(i); } return intervalo; }
Neste exemplo, para retornarmos todos os valores precisamos de criar um List e adicionar todos os nºs do intervalo que indicamos, e por fim retornarmos o List.
Com a expressão yield deixamos de precisar de criar um List e ficamos com o código bastante mais elegante.
static IEnumerable<int> GetValuesFromInterval(int min, int max) { for (int i = min + 1; i < max; i++) { yield return i; } }