В .NET используется автоматическое управление памятью и сборщик мусора.
Разработчик не имеет контроля над тем, как выделяется память в куче и как она освобождается.
Сборщик мусора сам собирает объекты, на которые нигде больше нет ссылок (но конкретный момент времени заранее сложно предсказать)
Можно принудительно стриггерить сборку мусора при помощи GC.Collect(), но учитывайте, что это очень дорогая операция, по тому её нельзя вызывать бездумно