我只是看一下我们的代码库的历史记录,并发现了一个从这里发生变化的签入:
public virtual T[] ToArray()
{
List<T> list = new List<T>();
foreach (object item in List)
{
list.Add((T)item);
}
return list.ToArray();
}
对此:
public virtual T[] ToArray()
{
T[] result = new T[List.Count];
for (int i = 0; i < List.Count; ++i)
{
result[i] = (T)List[i];
}
return result;
}
附注:优化 ToArray 实现以避免在过程中创建多个数据结构。
我想知道为什么这里有优化。for()
可能比 快foreach()
,但是“创建多个数据结构”在哪里?
P/S:写这篇文章的人现在正在度假