Clear()
代わりに使用できるすべてのアイテムを削除するメソッドがあります。
Clear
の代わりになぜそれらが使用されたのかを推測するのを危険にさらす必要がある場合、それは、アイテムが単にクリアされていることを示しながら、コレクションからアイテムを削除しているという提案を持っているRemoveAll
ためだと思います。RemoveAll
Clear
CollectionChanged
これにより、発生する通知の種類が異なります。Clear()
イベントを発生させNotifyCollectionChangedAction.Reset
、削除されたアイテムをイベントに含めない一方で、イベントを発生さRemove
せNotifyCollectionChangedAction.Removed
、削除されたアイテムをイベントに渡します。
CollectionChanged
複数のアイテムを含むイベントを発生させることはできないため、NotifyCollectionChangedAction.Removed
すべてのアイテムを削除してイベントを発生させると例外がスローされます。別の方法は、CollectionChanged
削除されたすべてのアイテムに対してイベントを発生させることです。これは、パフォーマンスにかなり悪影響を与える可能性があります。また、単にイベントを発生さNotifyCollectionChangedAction.Reset
せると、ユーザーがアイテムを削除するときにイベントが発生することを期待しているときに、混乱が生じる可能性がありRemoved
ます。
だから、名前が舞台裏で実際に起こっていることをよりよく説明しているので、彼らは.Clear()
代わりに単に使用することに決めたと私は推測しています。.RemoveAll()