There's a caveat with respect to clear. If you have an entity and it's in collections C1 and C2, and C2 goes out of scope (so should be cleaned up), it won't as the event handler in C2 keeps it in memory as it's bound to the changed event of the entity which is still alive.
Normally this won't happen much (if at all) but in case you run into this cornercase, be aware of this to clear C2 if the entity inside C2 is kept alive but the collection isn't.