回 帖 发 新 帖 刷新版面

主题:问一个控制台简单程序,高手帮忙

using System;
using System.Collections;
namespace ConsoleApplication41
{

    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            ArrayList arr = new ArrayList();
            arr.Capacity = 2;
            for(int i = 0; i < 5; i ++)
            {
                arr.Add(i);
            }
            Console.WriteLine(arr.Capacity);
            
        }
    }
}
运行如上代码后为什么输入的是8?
不是已经指定容量是2了吗?
是不是和元素个数有关?
高手解释下~
谢谢~

回复列表 (共8个回复)

沙发

因为你向arr里添加了元素,自然它的容量要增大,否则怎么容的下新添加的元素呢? 每次增加,它的容量翻一倍,添加第3个元素的时候,它的容量翻倍变成4,添加第5个元素时它的容量就变成了8,也就是输出的结果.

板凳

谢谢,明白了

3 楼

本来想学一下~~复制了你的代码
在我这里看不到Capacity的作用~~能告诉我一下用什么引用了么
或者你把你代码全发上来好吗

4 楼

貌似没什么引用吧,或者你引用下System看看

5 楼

ch3cho
你好~
我给你发了个信息~~麻烦你看一下。。

6 楼

个人觉得这个例子不是那么简单吧。

7 楼


这个例子刚刚试了一下,
当i<2时,arr.Capacity为2;
当i<3时,arr.Capacity为4;
当i<4时,arr.Capacity为4;
当i<5时,arr.Capacity为8;

只有当容量小时才开始翻倍.

8 楼

我也学习了,谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册