Невозможно просто удалить объект в C#
.
C#
- это управляемый язык, что означает, что все выделения / освобождение памяти перемещаются из области действия программиста. Когда вы var x = new object();
-. net CLR (Common Language Runtime) выделяет необходимую память и начинает отслеживать ссылки на эту память.
Когда количество ссылок упало до 0 (т.е. когда вы вернетесь из метода и переменной x
исчезает из вашей области действия, или когда вы делаете x = null;
) - эта память помечается для удаления, а через некоторое время (нет гарантий, когда, может быть, в следующую миллисекунду, может быть, в следующем месяце) специальная служба под названием G C (Garbage Collector), наконец, освободит эту память.
Итак, просто удалите этот объект из списка, и если он не хранится ни в каком другом списке / переменной, его выделенная память будет когда-нибудь освобождена (опять же, никто не знает когда именно).
Все становится намного интереснее, когда вы начинаете работать с неуправляемыми ресурсами (например, дескрипторами окон ОС), но это уже другая история.