2009-11-13 5 views

답변

20

List<T> 현재 구현 Int32 사방 사용하므로 Int32.MaxValue 항목의 현재 이론적 최대 (2^31-1 거기 또는 2147483647).

그러나 .NET 프레임 워크는 최대 개체 크기 제한이 2GB이므로 List<byte> 또는 List<bool>과 같은 단일 바이트 항목 목록을 사용하여 항목 한도 근처에서만 볼 수 있습니다.

실제로 이러한 한계 중 하나에 도달하기 전에 인접한 메모리가 부족할 것입니다.

+2

* 이론적으로 *는 이론적으로 * 수있는 요소가 아니라 얼마나 많은 요소가 아니라 'Int32.MaxValue'까지만 항목에 무작위로 액세스 할 수 있음을 의미합니다. –

+1

@Martinho : 글쎄요, 현재 구현은 'Int32' * everywhere *를 사용하므로 2^31 개 항목으로 제한되는 무작위 액세스가 아닙니다. 물론 내부적으로'Int32'를 사용하는 것은 구현에 불과하지만 인덱서와 Count와 같은 속성은 공개 계약의 일부입니다. – LukeH