"a dereference to a deleted object
will either succeed as if that very object was not yet
deleted, or result in a DanglingReferenceException."
How can you do something this stupid in 2017? All this will do is cause irreproducible bugs that only occur under memory pressure. Just drop the fucking OR and always delete.