7
목록에 저장할 수있는 요소의 제한이 있습니까? 또는 기억을 잃을 때까지 요소를 계속 추가 할 수 있습니까? 및 모든 내부 동작을위한 인덱서로서, 그 Count
속성 보조 배열을 구성하는 - -목록에 저장할 수있는 요소의 제한이 있습니까?
목록에 저장할 수있는 요소의 제한이 있습니까? 또는 기억을 잃을 때까지 요소를 계속 추가 할 수 있습니까? 및 모든 내부 동작을위한 인덱서로서, 그 Count
속성 보조 배열을 구성하는 - -목록에 저장할 수있는 요소의 제한이 있습니까?
List<T>
현재 구현 Int32
사방 사용하므로 Int32.MaxValue
항목의 현재 이론적 최대 (2^31-1
거기 또는 2147483647
).
그러나 .NET 프레임 워크는 최대 개체 크기 제한이 2GB이므로 List<byte>
또는 List<bool>
과 같은 단일 바이트 항목 목록을 사용하여 항목 한도 근처에서만 볼 수 있습니다.
실제로 이러한 한계 중 하나에 도달하기 전에 인접한 메모리가 부족할 것입니다.
* 이론적으로 *는 이론적으로 * 수있는 요소가 아니라 얼마나 많은 요소가 아니라 'Int32.MaxValue'까지만 항목에 무작위로 액세스 할 수 있음을 의미합니다. –
@Martinho : 글쎄요, 현재 구현은 'Int32' * everywhere *를 사용하므로 2^31 개 항목으로 제한되는 무작위 액세스가 아닙니다. 물론 내부적으로'Int32'를 사용하는 것은 구현에 불과하지만 인덱서와 Count와 같은 속성은 공개 계약의 일부입니다. – LukeH