【发布时间】:2012-09-05 00:09:24
【问题描述】:
我只是查看了我们代码库的历史记录,并发现了一个与此不同的签入:
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:写这篇文章的人现在正在度假
【问题讨论】:
-
我看到的最大优化是避免使用列表,而只是在整个过程中坚持使用数组
标签: c# .net arrays optimization