Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表中可以存储的元素是否有限制?_C#_.net_Collections_Ilist - Fatal编程技术网

C# 列表中可以存储的元素是否有限制?

C# 列表中可以存储的元素是否有限制?,c#,.net,collections,ilist,C#,.net,Collections,Ilist,列表中可以存储的元素是否有限制?或者您可以一直添加元素直到内存不足?当前的List实现使用Int32无处不在-为其Count属性构建其后备数组,作为索引器及其所有内部操作-因此当前理论最大值为Int32.MaxValue项(2^31-1或2147483647) 但是.NET framework也有2GB的最大对象大小限制,因此您只能使用单字节项目列表(如List或List)接近项目限制 实际上,在达到这些限制之前,您可能会耗尽连续内存。理论上,这意味着您只能随机访问Int32.MaxValue,

列表中可以存储的元素是否有限制?或者您可以一直添加元素直到内存不足?

当前的
List
实现使用
Int32
无处不在-为其
Count
属性构建其后备数组,作为索引器及其所有内部操作-因此当前理论最大值为
Int32.MaxValue
项(
2^31-1
2147483647

但是.NET framework也有2GB的最大对象大小限制,因此您只能使用单字节项目列表(如
List
List
)接近项目限制


实际上,在达到这些限制之前,您可能会耗尽连续内存。

理论上,这意味着您只能随机访问
Int32.MaxValue
,而不是理论上的元素数。@Martinho:目前的实现在任何地方都使用
Int32
,所以不仅仅是随机访问被限制在2^31个项目上。(当然,
Int32
的内部使用只是一个实现细节,但索引器和
Count
等属性是公共契约的一部分。)