Текущая реализация List<T>
использует Int32
везде - для создания своего резервного массива, для его свойства Count
, в качестве индексатора и для всех его внутренних операций - так что есть текущий теоретический максимум Int32.MaxValue
предметов (2^31-1
или 2147483647
).
Но в платформе .NET максимальный размер объекта также не превышает 2 ГБ, поэтому вы можете приблизиться только к пределу элементов со списками однобайтовых элементов, таких как List<byte>
или List<bool>
.
На практике вам, вероятно, не хватит смежной памяти, прежде чем вы достигнете любого из этих пределов.