Avatar ·

Uso correcto de yield return en C#: ¿cuándo y por qué?

¡Hola a todos! Recientemente comencé a estudiar C# y me encontré con la palabra clave `yield return`. Leí la documentación, pero no terminé de entender en qué situaciones debería usarla y en cuáles no. Por ejemplo, tengo un método que devuelve una colección de números de Fibonacci: ```csharp public static IEnumerable 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 algunos escriben así: ```csharp public static 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 `yield return` y cuándo es mejor crear la colección explícitamente? ¿Hay algún inconveniente? Gracias de antemano por la aclaración.