簡介
在今天的文章中,我們將介紹 C# 10 中引入的一項新功能。這是已新增到 List、Queue 和 Stack 集合中的 EnsureCapacity 方法。我們將討論為什麼我們應該使用這個方法以及何時使用它。
那麼,讓我們開始吧。
作者:依樂祝
為什麼以及何時使用EnsureCapacity 方法
這裡我們將首先了解為什麼需要使用這種方法以及何時使用。在 List、Queue 和 Stack內部使用的是陣列來表示集合。每次我們向這些集合新增更多項時,我們都需要增加這個內部陣列的大小。因此,會發生調整大小的操作。由於陣列大小進行了調整,因此這是一個效能損失。在我們知道此陣列的最大大小或假設我們知道將儲存在我們的 List、Queue 或 Stack 集合中的最大元素數量的情況下,我們可以使用EnsureCapacity 方法預設大小。這將確保最初設定此大小,並且不會調整內部陣列的大小,因此我們獲得了效能提升。讓我們在測試應用程式中實現它,
建立一個控制檯應用程式來測試EnsureCapacity 方法
我們將首先在 Visual Studio 2022 社群版中建立一個 C# 控制檯應用程式,如下所示,
用下面的程式碼替換 Program.cs 檔案,
var list=new List<int>();
list.EnsureCapacity(5);
for(vari=0;i<5;i++){
list.Add(i);
Console.WriteLine(list[i]);
}
thisList.Add(5);
Console.WriteLine(list[5]);
當我們執行此程式碼時,我們會看到以下輸出。
因此,我們看到即使超出了 EnsureCapacity 方法中定義的容量,我們仍然可以繼續向列表中新增元素。然而,此時,內部陣列又重新調整大小,我們失去了效能增益。這表明我們在設定EnsureCapacity 值時必須非常小心。
總結
在本文中,我們研究了在C#10中對List集合使用EnsureCapacity方法,討論了使用此方法的優點以及何時應該使用它。這同樣適用於佇列和堆疊集合。祝編碼快樂!