Avatar ·

Uso correto de yield return em C#: quando e por quê?

Olá a todos! Recentemente comecei a estudar C# e me deparei com a palavra-chave `yield return`. Li a documentação, mas não entendi completamente em quais situações devo usá-la e em quais não. Por exemplo, tenho um método que retorna uma coleção 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; } ``` Mas vi que alguns escrevem assim: ```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; } } ``` Qual é a diferença? Quando devo usar `yield return` e quando é melhor criar uma coleção explicitamente? Existem algumas armadilhas? Desde já agradeço pela explicação.