Pesquisa

quarta-feira, 2 de março de 2011

Yield - Retornar uma instância do tipo IEnumerable ou IEnumerator

O Yield é utilizado para retornar uma instância do tipo IEnumerable ou IEnumerator, em casos que eu tenho um método que retorne vários valores, o ganho de performance é considerável se você tem uma coleção de dados extensa, observe abaixo:

Confira abaixo como utilizar o yield:

class Program
{
static void Main(string[] args)
{
foreach (int num in ObterLista())
{
Console.WriteLine(num);
}
}

public static IEnumerable ObterLista()
{
for (int i = 0; i < 100; i++)
{
yield return i;
}
}
}


public IEnumerable GetImpares_Yield(Int32 maxNum)
{
int num = 0;

while (true)
{
System.Threading.Thread.Sleep(1000);
num++;

if (num % 2 == 1)
yield return num;

if (num >= maxNum)
yield break;
}
}


Créditos: http://devrs.net/post/desmistificando-o-yield/

Nenhum comentário:

Postar um comentário