例えば:
Queue<System.Drawing.SolidBrush> brushQ = new Queue<System.Drawing.SolidBrush>();
...
brushQ.Clear();
各アイテムを明示的にデキューして個別に破棄しない場合、Clear() を呼び出したときに残りのアイテムは破棄されますか? キューがガベージ コレクションされるときはどうですか?
答えが「いいえ」であると仮定すると、ベストプラクティスは何ですか? 常にキューを反復処理して、各アイテムを破棄する必要がありますか?
特に、例外がスローされた場合に備えて、最後に各破棄を試行する必要がある場合は、醜くなる可能性があります。
編集
したがって、一般的なコレクションのユーザーには、アイテムが使い捨て可能 (ガベージ コレクターによってクリーンアップされないアンマネージド リソースを使用している可能性が高いことを意味します) の場合、次のことを知る負担があるようです。
- コレクションから項目を削除するときは、必ず Dispose() してください。
- Clear() を呼び出さないでください。コレクションを繰り返し処理し、各アイテムを破棄します。
おそらく、ジェネリック コレクションのドキュメントにそのことが記載されているはずです。