假设我们有如下伪 C# 中的方法:
```csharp ```
如果我们有许多类似于这种方法的调用,哪个会消耗更少的内存(和更少的GC周期)?编写自己的Enumerable/Enumerator来实现这种Enumerable.Once()场景是否有意义?
```csharp ```
请注意,这里没有提供任何代码。
static IEnumerable<T> Iterator<T>()
{
switch (SomeCondition)
{
case CaseA:
yield return default(T);
case CaseB:
yield return default(T);
yield return default(T);
case CaseC:
yield return default(T);
default:
break;
}
}
static IEnumerable<T> Array<T>()
{
switch (SomeCondition)
{
case CaseA:
return new[] { default(T) };
case CaseB:
return new[] { default(T), default(T) };
case CaseC:
return new[] { default(T) };
default:
break;
}
}
如果我们有许多类似于这种方法的调用,哪个会消耗更少的内存(和更少的GC周期)?编写自己的Enumerable/Enumerator来实现这种Enumerable.Once()场景是否有意义?