Вы не указываете, имеете ли вы в виду простой TList или универсальный TList, введенный с дженериками в D2009, хотя мне кажется, что это простой TList.
Используйте Список , если вы хотите использовать дженерики. Это означает, что вам не нужно выполнять ручную типизацию каждый раз, когда вы берете что-то из списка. В общем, вы, вероятно, захотите использовать это, если у вас нет особых причин не делать этого. Вам также следует использовать это, если вы уже используете TList в своем приложении Delphi - если память служит, CodeGear сознательно адаптировал интерфейс из списка .NET при добавлении обобщений в D2009.
Если вам нужна неуниверсальная версия, которая просто хранит объекты (так же, как TList), посмотрите на ArrayList . Это более точно соответствует вашей текущей реализации (при условии простого TList), но вы теряете безопасность типов во время компиляции, которую вы можете получить, используя generics.