Есть ли предел элементов, которые могут быть сохранены в списке? - PullRequest
7 голосов
/ 13 ноября 2009

Есть ли предел элементов, которые могут быть сохранены в списке? или вы можете просто добавлять элементы до тех пор, пока у вас не останется памяти?

1 Ответ

20 голосов
/ 13 ноября 2009

Текущая реализация List<T> использует Int32 везде - для создания своего резервного массива, для его свойства Count, в качестве индексатора и для всех его внутренних операций - так что есть текущий теоретический максимум Int32.MaxValue предметов (2^31-1 или 2147483647).

Но в платформе .NET максимальный размер объекта также не превышает 2 ГБ, поэтому вы можете приблизиться только к пределу элементов со списками однобайтовых элементов, таких как List<byte> или List<bool>.

На практике вам, вероятно, не хватит смежной памяти, прежде чем вы достигнете любого из этих пределов.

...