我有一个#newbie问题.以下两个中的优良做法是什么?...并且列表比数组更慢或更快?
//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);
Run Code Online (Sandbox Code Playgroud)
dtb*_*dtb 11
需要可以增长或缩小的集合时使用列表.
如果您知道长度并且不想更改它,请使用数组.
您可以使用集合初始值设定项来初始化列表,因此您可以获得与初始化数组类似的语法:
var list = new List<int> { 2, 0, 110, 53455, 2223 };
if (someBoolean)
{
list.Add(someIntValue);
}
Run Code Online (Sandbox Code Playgroud)
后者被认为是可变大小集合的最佳实践.
根据您正在使用的集合类型,Framework类将在内部执行类似于您在第一个示例中执行的操作(除了通过一个元素调整大小,它以更大的大小递增,因此您有额外的缓冲区空间继续添加元素).
但是,一般情况下,您不想重新发明轮子.该框架提供了大量可变大小的集合类.使用它们而不是自己编写.
| 归档时间: |
|
| 查看次数: |
1844 次 |
| 最近记录: |