Вопреки большинству ответов здесь я бы не стал подклассом из списка в большинстве случаев. Я обнаружил, что наследование от класса для повторного использования функциональности обычно вызывает проблемы позже.
У меня обычно просто есть свойство типа List (или IList), которое возвращает ссылку на список. Обычно вам нужно только приобрести недвижимость здесь. Вы можете контролировать доступ к списку, выбрав возврат только для чтения версии списка с помощью .AsReadOnly () или просто выставив список как IEnumerable.
В случаях, когда я хочу, чтобы Тесты были списком, я обычно реализую IList и вызываю внутреннее поле List для реальных реализаций IList. Это немного больше работы и приводит к некоторому большему количеству кода для поддержки, но я обнаружил, что это лучше поддерживать, чем наследовать List только для его реализации.