【发布时间】:2010-11-09 11:50:54
【问题描述】:
public SharpQuery Add(params HtmlNode[] elements)
{
var nodes = new List<HtmlNode>(_context.Count + elements.Length);
nodes.AddRange(_context);
nodes.AddRange(elements);
return new SharpQuery(nodes, this);
}
public SharpQuery(IEnumerable<HtmlNode> nodes, SharpQuery previous = null)
{
if (nodes == null) throw new ArgumentNullException("nodes");
_previous = previous;
_context = new List<HtmlNode>(nodes);
}
我有一大堆函数可以创建一个新的List<T>,向其中添加一堆节点,然后将其传递给构造函数,该构造函数获取列表,并用它创建另一个新列表。
编译器是否足够聪明,可以确定它实际上不需要创建两次列表?
【问题讨论】:
-
您能否考虑让问题标题更具体一些?像这样的问题标题往往会导致重复。
-
@Andre:抱歉,很难想出一个标题来捕获该信息而不显示代码。
-
没问题。现在好多了:)
标签: c# optimization compiler-construction