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