当我查看List.AddRange的实现时,发现了一些奇怪的东西,我无法理解。 源代码,见第727行(AddRange调用InsertRange)
T[] itemsToInsert = new T[count];
c.CopyTo(itemsToInsert, 0);
itemsToInsert.CopyTo(_items, index);
为什么它首先将集合复制到“临时数组”(itemsToInsert)中,然后再将该临时数组复制到实际的_items数组中? 这是有原因的吗,还是只是从ArrayList源代码中复制过来的剩余部分,因为在那里也发生了同样的事情。