【发布时间】:2015-03-30 13:51:15
【问题描述】:
我知道您可以在 C# 中添加到 List 的项目数量受 int 限制(因为这是 count 的类型)。应该是 20 亿左右。
但我的问题是说我想要这样的列表:
List<MyClass>= new List<MyClass>;
在哪里
class MyClass
{
string s1; // should be string of 8 characters always
DateTime t;
}
我可以添加多少MyClass 的对象到列表中?我假设
现在我必须考虑到内存
它将占用numberOfElements * sizeof(MyClass)?
那么使用这样的约束我可以添加多少元素呢?
(我相信我可能会更快地耗尽内存
由于上面的公式,我达到了 int 的最大值,不是吗?)。
【问题讨论】:
-
由于
MyClass是引用类型,所以列表只会包含对对象的引用,所以列表的大小不会有任何不同。 -
您可以添加尽可能多的元素,因为内存允许每个对象在 .NET 4.5 之前的上限为 2GB 或最多为 int 的最大大小。
-
对象数量受int上限限制。内存的限制取决于您运行的是 32 位还是 64 位。
SizeOf(class)也不会告诉你类在内存中的实际大小。这是一个很好的估计,但不准确 -
不是同一个问题,但请查看该主题的答案:stackoverflow.com/questions/7885294/…
-
编写一个测试应用程序在与生产机器类似的机器上测试它并不难。如果您在 IIS、.net 版本等中运行...
标签: c#