List类如何工作? (System.Collections.Generic)

时间:2017-01-08 15:47:53

标签: c# arrays list dynamic

使用特定大小定义数组。但是,如果我想要一个动态增长的数组,我使用List类(来自命名空间System.Collections.Generic)。但是这门课程怎么样?列表如何动态增长?

1 个答案:

答案 0 :(得分:2)

using System;
using System.Collections.Generic;

namespace ImmutableLists
{
    class Program
    {
        static void Main()
        {
            List<int> nums = new List<int>(); ;

            for (int i=0; i<=20; i++)
            {
                nums.Add(i);
                Console.WriteLine("{0} : {1}", i, nums.Capacity);
            }

            Console.ReadKey();
        }
    }
}

列表是不可变的 - 即不能改变大小。这怎么工作呢?它们被分配空间,当它被击中时,它们被倾倒,另一个列表被设置为具有之前容量的两倍&amp;新的形成了。当然都是无形的。