小さな配列を大きな配列に手動でコピーしています。
T is constrained to class, new()
これが GC をトリガーするのはなぜですか? 新しい配列への割り当ては参照によるものではありませんか? 古い配列の古い要素がまだガベージ コレクションされているのはなぜですか? 最初のループ内の割り当ては本当にそれらをコピーしますか?
public void Resize()
{
T newArray = new T[oldArray.Length * 2];
for (int i = 0; i < oldArray.Length; i++)
{
newArray[i] = oldArray[i];
}
for (int i = oldArray.Length; i < newArray.Length; i++)
{
// Assign new elements to the new array
}
oldArray = newArray;
}