C#中字符串数组的最大大小

时间:2018-09-16 07:22:03

标签: c# arrays

我有一个可能包含很多文件的文件夹,我想知道字符串数组可以容纳的最大大小,我的意思是该数组有多少个文件名:

string[] files=Directory.GetFiles(@"c:\Dir\");可以容纳吗?

请注意,我要问的是 string 数组,而不是其他。

1 个答案:

答案 0 :(得分:1)

Array Class

  

默认情况下,阵列的最大大小为2 GB。在   在64位环境中,您可以通过设置   gcAllowVeryLargeObjects 配置元素的enabled属性   在运行时环境中为true。 但是,阵列仍将是   限制为总共40亿个元素,并且最大索引为   任何给定的维数为0X7FEFFFFF(对于字节数组,为0X7FFFFFC7,   单字节结构数组)。

Ňuf的有用评论

  

但应注意,字符串本身不计入   2GB的大小限制,因为该数组仅包含对它们的引用   字符串。因此,字符串数组中的最大元素数约为。   在32位处理中为500M,在64位处理中为2G。也是这个限制   适用于.NET CLR,其他实现可能有不同的限制   (例如64位元的Mono支援更大的阵列   –enable-big-arrays选项)