C#10在List, Queue 以及Stack中使用EnsureCapacity方法来提升性能
簡介
在今天的文章中,我們將介紹 C# 10 中引入的一項新功能。這是已添加到 List、Queue 和 Stack 集合中的 EnsureCapacity 方法。我們將討論為什么我們應該使用這個方法以及何時使用它。
那么,讓我們開始吧。
作者:依樂祝
譯文鏈接:https://www.cnblogs.com/yilezhu/p/15182566.html
原文鏈接:https://www.c-sharpcorner.com/article/using-the-ensurecapacity-method-in-c-sharp-lists-queues-and-stacks/
為什么以及何時使用EnsureCapacity 方法
這里我們將首先了解為什么需要使用這種方法以及何時使用。在 List、Queue 和 Stack內部使用的是數組來表示集合。每次我們向這些集合添加更多項時,我們都需要增加這個內部數組的大小。因此,會發生調整大小的操作。由于數組大小進行了調整,因此這是一個性能損失。在我們知道此數組的最大大小或假設我們知道將存儲在我們的 List、Queue 或 Stack 集合中的最大元素數量的情況下,我們可以使用EnsureCapacity 方法預設大小。這將確保最初設置此大小,并且不會調整內部數組的大小,因此我們獲得了性能提升。讓我們在測試應用程序中實現它,
創建一個控制臺應用程序來測試EnsureCapacity 方法
我們將首先在 Visual Studio 2022 社區版中創建一個 C# 控制臺應用程序,如下所示,
在 Cshaarp 列表、隊列和堆棧中使用確保容量方法在 Cshaarp 列表、隊列和堆棧中使用確保容量方法在 Cshaarp 列表、隊列和堆棧中使用確保容量方法在 Cshaarp 列表、隊列和堆棧中使用確保容量方法在 Cshaarp 列表、隊列和堆棧中使用確保容量方法用下面的代碼替換 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]);當我們運行此代碼時,我們會看到以下輸出。
在 Cshaarp 列表、隊列和堆棧中使用確保容量方法因此,我們看到即使超出了 EnsureCapacity 方法中定義的容量,我們仍然可以繼續向列表中添加元素。然而,此時,內部數組又重新調整大小,我們失去了性能增益。這表明我們在設置EnsureCapacity 值時必須非常小心。
總結
在本文中,我們研究了在C#10中對List集合使用EnsureCapacity方法,討論了使用此方法的優點以及何時應該使用它。這同樣適用于隊列和堆棧集合。祝編碼快樂!
總結
以上是生活随笔為你收集整理的C#10在List, Queue 以及Stack中使用EnsureCapacity方法来提升性能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一篇文章带你分清楚JWT,JWS与JWE
- 下一篇: 在 .NET 中加载椭圆曲线 (EC)