什么是可以在.NET中创建的最长字符串?String就我所见,该课程的文档对此问题保持沉默,因此权威性答案可能需要一些内部知识.64位系统的最大变化是什么?
[这更多是为了好奇而不是实际使用 - 我不打算创建任何使用巨大字符串的代码!]
据我所知,.NET中的单个实例有2 GB的限制.我没有太多关注,因为到目前为止我主要使用32位操作系统.在32但它或多或少是一个人为的限制.但是,我很惊讶地发现这个限制也适用于64位.NET.
由于诸如List<T>使用数组来存储项目之类的集合,这意味着与在64位上运行的相同应用程序相比,在32位上运行的.NET应用程序将能够在列表中保存两倍的引用类型项.这非常令人惊讶.
有谁知道这个限制是否在CLR 4.0中得到解决(目前我手头没有安装4.0).
我在做一些项目欧拉练习,我碰到一个场景,我已经想这比2,147,483,647(上限更大的阵列int在C#).
当然这些是大型阵列,但是,例如,我不能这样做
// fails
bool[] BigArray = new BigArray[2147483648];
// also fails, cannot convert uint to int
ArrayList BigArrayList = new ArrayList(2147483648);
Run Code Online (Sandbox Code Playgroud)
那么,我可以拥有更大的阵列吗?