gpt4 book ai didi

c# - 数组可以容纳的最大大小是多少?

转载 作者:IT王子 更新时间:2023-10-29 04:02:06 28 4
gpt4 key购买 nike

在 C# 2008 中,数组可以容纳的最大大小是多少?

最佳答案

System.Int32.MaxValue

假设您的意思是 System.Array , IE。任何通常定义的数组( int[] 等)。这是数组可以容纳的最大值数。每个值的大小仅受可用于保存它们的内存或虚拟内存量的限制。

此限制是强制执行的,因为 System.Array使用 Int32因为它是索引器,因此只有 Int32 的有效值可以使用。除此之外,只能使用正值(即 >= 0 )。这意味着数组大小的绝对最大上限是 Int32 的值的绝对最大上限。 ,可在 Int32.MaxValue 中找到相当于 2^31,或大约 20 亿。

换句话说,如果您担心这一点,很可能您正在使用 大量 数据,无论是正确的还是错误的。在这种情况下,我会考虑使用 List<T>而不是数组,这样您就可以根据需要使用尽可能多的内存。事实上,我建议使用 List<T>或另一种通用集合类型。这意味着只会分配您实际使用的内存,但您可以像使用普通数组一样使用它。

另一个笔记集合是Dictionary<int, T>您也可以像普通数组一样使用它,但只会稀疏地填充。例如,在下面的代码中,只会创建一个元素,而不是数组创建的 1000 个元素:

Dictionary<int, string> foo = new Dictionary<int, string>();
foo[1000] = "Hello world!";
Console.WriteLine(foo[1000]);

使用 Dictionary还允许您控制索引器的类型,并允许您使用负值。对于绝对最大大小的稀疏数组,您可以使用 Dictionary<ulong, T> ,这将提供比您想象的更多的潜在元素。

关于c# - 数组可以容纳的最大大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391672/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com