Исполнительное резюме
MyList.Free
достаточно.
Подробный ответ
TList<T>
общий контейнер имеет его содержимое. Когда вы освобождаете контейнер, содержимое также удаляется.
Теперь, если T
является неуправляемой ссылкой, либо указателем, либо классом, то список владеет ссылкой. Он не владеет тем, на что ссылается ссылка. Поэтому, если у вас есть TList<TObject>
, добавьте некоторые объекты, а затем освободите список, ссылки будут удалены, но объекты останутся. Итак, чтобы справиться с этим, есть TObjectList<T>
. Этот контейнер может быть сконфигурирован так, чтобы владеть объектами, а также ссылками, и таким образом удалять объекты в соответствующий момент.
Теперь в вашем сценарии каждый из ваших списков содержит либо тип значения, либо управляемый тип. Список владеет этими объектами и распоряжается им, когда он уничтожен. Поэтому для всех ваших списков MyList.Free
- это все, что нужно.
+1. Очень красиво написанный вопрос. –