Ну, List<T>
в основном поддерживается массивом, который обычно больше, чем текущее количество элементов.Элементы помещаются в массив, и новый массив создается, когда у старого заканчивается свободное место.Это быстро для доступа по индексу, но медленно при удалении или вставке элементов в списке или в начале.Добавление / удаление записей в конце списка достаточно дешево.
LinkedList<T>
- список с двойной связью - каждый узел знает свою предыдущую запись и свою следующую.Это быстро для вставки после / перед определенным узлом (или головой / хвостом), но медленно при доступе по индексу.
LinkedList<T>
будет обычно займет больше памяти, чем List<T>
потому что ему нужно место для всех этих следующих / предыдущих ссылок - и данные, вероятно, будут иметь меньшую локальность ссылок, поскольку каждый узел является отдельным объектом.С другой стороны, List<T>
может иметь резервный массив, который намного больше, чем его текущие потребности.