動態調整陣列大小:Array.Resize() 與清單
在程式設計中,陣列是固定大小的資料結構,這意義著它們的大小申報後不得更改。然而,有些情況下數組大小事先是未知的,需要動態調整。這就提出了一個問題:在 C# 中是否可以調整陣列的大小?
答案是「是」和「否」。雖然 C# 提供了 Array.Resize() 方法,但請務必注意,Array.Resize() 在技術上並不會調整原始陣列的大小。相反,它會建立一個具有指定大小的新數組,並將舊數組中的元素複製到新數組中。然後,原始數組引用將替換為對新數組的引用。
範例:
int[] array1 = new int[10]; int[] array2 = array1; Array.Resize<int>(ref array1, 20); // Now: // array1.Length is 20 // array2.Length is 10 // Two different arrays.
在此範例中,呼叫Array.Resize() 後, array1 引用了長度為20 的新數組,而array2 仍然指向長度為10 的原始數組。這意味著這兩個陣列現在是獨立的,並且對其中一個所做的任何更改都不會影響另一個。
替代方案:使用列表
如果需要頻繁動態調整大小,建議使用列表而不是數組。清單是動態資料結構,可以根據需要自動調整其大小。與陣列不同,清單可以透過新增或刪除元素輕鬆擴展或縮小。
範例:
List<int> list = new List<int>(); list.Add(1); list.Add(2); // Get the current size of the list int size = list.Count;
使用清單動態調整大小比使用清單動態調整大小更方便且有效率地使用 Array.Resize()。然而,數組仍然有其自身的優點,例如某些操作的性能更好以及能夠使用索引直接存取元素。數組和列表之間的選擇取決於應用程式的特定要求。
以上是在 C# 中,我應該使用 Array.Resize() 還是清單來動態調整陣列大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!