Para que serve a palavra-chave yield em C# e como ela funciona?
Olá a todos! Recentemente comecei a estudar C# e me deparei com a palavra-chave `yield`. Li a documentação no MSDN, mas não entendi completamente para que ela serve. Parece que posso simplesmente retornar uma lista ou array de um método, por que usar yield return?
Eu tenho este código: estou escrevendo um método que gera uma sequência de números de Fibonacci. Atualmente faço assim:
```csharp
public List GetFibonacci(int count)
{
var result = new List();
int a = 0, b = 1;
for (int i = 0; i < count; i++)
{
result.Add(a);
int temp = a;
a = b;
b = temp + b;
}
return result;
}
```
Mas vi que posso escrever o mesmo com `yield return`:
```csharp
public IEnumerable GetFibonacci(int count)
{
int a = 0, b = 1;
f