В чем различие между List и Collection. Где и при каких условиях будет рациональнее использовать тот или другой тип?
Разница в том, что в Collection<T> есть ряд виртуальных методов (InsertItem, RemoveItem, SetItem, ClearItems), которые вы можете переопределить в классе-наследнике по своему усмотрению, и тем самым задать этим наследникам своё поведение при вставке, удалении или очистке элементов.
При этом класс List<T> в большей степени сосредотачивается на быстродействии при выполнении операций вставки/удаления/очистки, нежели на предоставлении пользователю средств расширяемости в классах-наследниках (виртуальных членов у него нет вовсе).
MSDN нам авторитетно заявляет, что
Provides the base class for a generic collection
Иными словами, класс Collection<T> в первую очередь предназначен для создания на его базе собственных обобщённых коллекций, тогда как List<T> "для работы"
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости