Нет, это не правда. Производительность хорошая, поскольку все, что она делает, это копирует в память все элементы (*), чтобы сформировать новый массив.
Конечно, это зависит от того, что вы определяете как «хорошую» или «плохую» производительность.
(*) ссылки для ссылочных типов, значения для типов значений.
EDIT
В ответ на ваш комментарий использование Reflector - хороший способ проверить реализацию (см. Ниже). Или просто подумайте пару минут о том, как вы бы это реализовали, и поверьте, что инженеры Microsoft не придумают худшее решение.
public T[] ToArray()
{
T[] destinationArray = new T[this._size];
Array.Copy(this._items, 0, destinationArray, 0, this._size);
return destinationArray;
}
Конечно, «хорошая» или «плохая» производительность имеет значение только относительно некоторой альтернативы. Если в вашем конкретном случае есть альтернативный метод для достижения вашей цели, который значительно быстрее, тогда вы можете считать производительность «плохой». Если такой альтернативы нет, то производительность "хорошая" (или "достаточно хорошая").
РЕДАКТИРОВАТЬ 2
В ответ на комментарий: «Нет реконструкции объектов?» :
Нет реконструкции для эталонных типов. Для типов значений значения копируются, что можно условно назвать реконструкцией.