[英]Using list arrays - Best practices
我有一個#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);
需要可以增長或縮小的集合時使用列表。
如果您知道長度並且不想更改它,請使用數組。
您可以使用集合初始值設定項來初始化列表,因此您可以獲得與初始化數組類似的語法:
var list = new List<int> { 2, 0, 110, 53455, 2223 };
if (someBoolean)
{
list.Add(someIntValue);
}
后者被認為是可變大小集合的最佳實踐。
根據您正在使用的集合類型,Framework類將在內部執行類似於您在第一個示例中執行的操作(除了通過一個元素調整大小,它以更大的大小遞增,因此您有額外的緩沖區空間繼續添加元素)。
但是,一般情況下,您不想重新發明輪子。 該框架提供了大量可變大小的集合類。 使用它們而不是自己編寫。
列表在內部使用數組,因此我希望這兩個數據的性能相同。
使用列表進行編程時比使用原始數組更難產生錯誤,所以我更喜歡列表。
兩者都結束為IEnumerables,因此您可以在兩者上執行類似的操作。 列表的好處是Justin Niessner所說的,可變大小的集合。 此外,調整數組大小將需要框架重新分配內存,而List表現為鏈接列表,只是添加或刪除集合中的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.