リストが大きい場合 (80 キロバイト以上)、大きなオブジェクト ヒープに格納されます。LOH の公式のガイダンスは、ヒープの断片化を減らすために、そこにあるオブジェクトを可能な限り再利用することです。LOH は、通常のヒープのように圧縮されません。
小さいリストの場合、 を呼び出すよりも新しいリストを作成する方が全体的に速いことが多いことがわかりましたClear。これは常に正しいとは限らないため、アプリケーションで両方の方法でテストすることをお勧めします。
を呼び出すとClear、リスト内のすべての項目がデフォルト値に設定Countされ、0 に設定されます。リストの容量は変更されません。そのため、呼び出しClearによって、コレクションに割り当てられたメモリの量が変更されることはありません。リストをクリアしてサイズを縮小する場合は、 を呼び出しClearてから を呼び出しますTrimExcess。
注意しないと発生する問題の 1 つは、エイリアシングです。同じリストを参照する複数のオブジェクトがある場合、新しいリストを作成しても、それらの他の参照は削除されません。したがって、2 つのリストが作成されます。ちょうど考えるべきこと。
結局のところ、これには特定の「ベストプラクティス」があるとは思いません。Clear使用するのが良い場合もあれば、新しいリストを割り当てるのが最善の場合もあることがわかりました。