正确使用 C# 中的 yield return:何时以及为什么?
大家好!我最近开始学习 C#,遇到了 `yield return` 关键字。我读了文档,但还没完全理解在哪些情况下应该使用它,哪些情况下不应该。
例如,我有一个返回斐波那契数列集合的方法:
```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;
}
```
但我看到有些人这样写:
```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;
}
}
```
有什么区别?什么时候应该使用 `yield return`,什么时候最好显式创建集合?有没有什么陷阱?提前感谢您的解释。