Существуют ли какие-либо классы коллекций или специальные типы данных, которые поддерживают более 2 ^ 31 элементов в .NET 3.5? - PullRequest
2 голосов
/ 15 мая 2011

В настоящее время я использую 64-разрядную версию VS 2008, 3.5 framework с пакетом обновления 1 (SP1). Однако представляется, что классы коллекций, такие как List, имеют ограничение в 2 ^ 31 (или максимальное значение типа int), которое оно может содержать.

Кто-нибудь знает, есть ли настоящие 64-битные коллекции, которые могут обрабатывать более 2 ^ 31 элементов внутри контейнера? Если не для VS 2008, то как насчет VS 2010? Какие-нибудь сторонние коллекции, которые делают это?

1 Ответ

6 голосов
/ 15 мая 2011

Я почти уверен, что нет встроенных коллекций, которые могут обрабатывать более Int32.MaxValue записей.Причина в том, что .NET Framework по-прежнему имеет ограничение ~ 2 ГБ для объектов даже для 64-разрядной версии.Int32.MaxValue записи одного байта увеличиваются до этого предела.Я считаю, что предел памяти Mono больше, но я не могу точно это подтвердить.

Вы можете обойти это ограничение, используя реализацию BigArray из здесь .

...