Ob dieses Konstrukt nun der beste weg sei, das sei mal dahingestellt. Für mich erfüllt es seinen Zweck
Leider komme ich nicht drumrum einzelne Objecte in verschiedenen Listen einzufügen. Deshalb nutze ich dort dann OwnsObject = False.
Nur Sir Rufo hat schon Recht ... Das führt zu Problemen wenn man einen ganzen Projekt Tree (Ab Item_Project) entfernen möchte.
Du kannst aber alle Listen (rekursiv) durchlaufen und alle Objekte nochmal in eine "Masterliste" einfügen (duplikate ignorieren), dann die Listen freigeben und schließlich durch die Masterliste durchgehen und alle Objekte freigeben. (Du kannst natürlich auch die Masterliste immer "nebenher" aktuell halten)
Btw.: Punkt für Garbage-Collection