简介

在今天的文章中,我们将介绍 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# 控制台应用程序,如下所示,

用下面的代码替换 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方法,讨论了使用此方法的优点以及何时应该使用它。这同样适用于队列和堆栈集合。祝编码快乐!

最新文章

  1. poi 输出Excel显示内容
  2. 4.27-4.30webstorm
  3. MySQL的重装问题解决方法
  4. HDU 5660 jrMz and angles (暴力枚举)
  5. Linux(CentOS或RadHat)下MySQL源码安装
  6. select查询原理
  7. 解决MVC模型验证在IE 6 7下不起作用或者报错
  8. 安卓图片加载框架之Glide框架
  9. DOS、Mac 和 Unix 文件格式[转]
  10. Struts+Hibernate+jsp页面,实现分页
  11. obj-c编程01[扩展学习01]:对象消息机制工作原理
  12. netcore程序部署到docker
  13. 终于明白word-break属性——break-all和break-word的区别
  14. (二)juc线程高级特性——CountDownLatch / Callable / Lock
  15. rapidjson常见使用示例
  16. January 31st, 2018 Week 05th Wednesday
  17. JQuery中$.cookie()方法的使用[转]
  18. 控件布局_LinearLayout的嵌套
  19. 大数据入门第十六天——流式计算之storm详解(一)入门与集群安装
  20. git pull 免密

热门文章

  1. C语言:九宫格改进
  2. 2018年一名合格的web前端程序员应该会哪些技术
  3. Python+js进行逆向编程加密MD5格式
  4. Pytest单元测试框架之FixTure基本使用
  5. python编程面试题
  6. python之数据驱动Excel操作(方法一)
  7. Requests方法 -- session方法
  8. FPGA经典:Verilog传奇与基于FPGA的数字图像处理原理及应用
  9. 微信小程序云开发-云存储的应用-识别身份证(正面和反面)
  10. Ubuntu 20.04 安装kodi播放器