Avatar ·

¿Para qué sirve la palabra clave yield en C# y cómo funciona?

¡Hola a todos! Recientemente comencé a estudiar C# y me topé con la palabra clave `yield`. Leí la documentación en MSDN, pero no terminé de entender para qué sirve. Parece que simplemente se podría devolver una lista o un array desde un método, ¿por qué usar yield return? Tengo este código: escribo un método que genera una secuencia de números de Fibonacci. Actualmente lo hago así: ```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; } ``` Pero he visto que se puede escribir lo mismo con `yield return`: ```csharp public IEnumerable GetFibonacci(int count) { int a = 0, b = 1; for (int i = 0; i < count; i++) { yield return a; int temp = a; a = b; b = temp + b; } } ``` ¿Cuál es la diferencia? ¿Cuándo debería usar la primera opción y cuándo