Listにそれ以上要素を追加する必要がなくなった場合などには、TrimExcessメソッドを使用することで不要な容量を減らすことができます。
このメソッドはList内の再割当てを行うことで使用するメモリを最小化します。 そのため、Listにそれ以上変更を加えない(追加によって容量を再度拡張する必要がない)ことが明らかな場合などに用いるべきで、不必要に何度も呼び出すことはパフォーマンスの劣化に繋がります。
Listに対する操作 | List内部の状態 | |
---|---|---|
- |
0
1
〜
499
500
〜
〜
1499
(空き)
〜
〜
(空き)
(操作前の状態・インデックス1500〜2047までの領域は空きとなっている) |
Count=1500 Capacity=2048 |
list.RemoveRange(0, 500) |
(空き)
〜
〜
(空き)
500
〜
〜
1499
(空き)
〜
〜
(空き)
(インデックス0〜499までの領域が空きとなる) |
Count=1000 Capacity=2048 |
list.TrimExcess() |
500
〜
〜
1499
(領域の再作成と要素の再配置が行われ、必要最低限の容量になる) |
Count=1000 Capacity=1000 |