我有一个C#新手问题。在下面的两种方法中,什么也被认为是好的做法? ...而且列表比数组慢还是快?

        //Method 1
        int[] i_array = { 2, 0, 110, 53455, 2223 };

        if (someBolean)
        {
            Array.Resize(ref i_array, i_array.Length + 1);
            i_array[i_array.Length - 1] = someIntValue;
        }

        //Method 2
        var i_list = new List<int>();
        i_list.AddRange(new int[] { 2, 0, 110, 53455, 2223 });

        if (someBolean)
            i_list.Add(someIntValue);

最佳答案

后者被认为是可变大小集合的最佳实践。

根据您使用的集合类型,Framework类将在内部执行与第一个示例类似的操作(除了不是按一个元素调整大小,它会增加一个较大的大小,因此您有额外的缓冲区空间)继续添加元素)。

但是,总的来说,您不想重新发明轮子。该框架提供了大量的可变大小的收集类。使用它们而不是自己编写。

关于c# - 使用列表数组-最佳做法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4337393/

10-11 22:04
查看更多