• 欢迎访问交通人网站!
  • 分享一款小游戏:信任的进化
  •    发表于7年前 (2015-12-25)  热点资讯 |   抢沙发  392 
    文章评分 0 次,平均分 0.0

    ArrayList

    即动态数组。用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处。

    ArrayList在使用时会引发装箱和拆箱操作,看下面的一段代码:首先声明了一个ArrayList对象,并向ArrayList中添加两个数字1,2,然后使用foreach将ArrayList中的元素打印到控制台。

    在这个过程中会发生两次装箱操作和两次拆箱操作:在向ArrayList中添加int类型元素时会发生装箱,在使用foreach枚举ArrayList中的int类型元素时会发生拆箱操作,将object类型转换成int类型,在执行到Console.WriteLine时,还会执行两次的装箱操作;这一段代码执行了6次的装箱和拆箱操作;如果ArrayList的元素个数很多,执行装箱拆箱的操作会更多。

    List<T>

    List<T>表示可通过索引访问对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。

    List<T>与ArrayList的显著差异在于,List<T>只会在Console.WriteLine()方法时执行2次装箱操作,不需要拆箱操作。

    请看如下代码:

    综上所述,泛型可以避免装箱拆箱带来的不必要的性能消耗。当然泛型的好处不止于此,泛型还可以增加程序的可读性,使程序更容易被复用等等。

    打赏
    微信
    支付宝
    微信二维码图片

    微信 扫描二维码打赏

    支付宝二维码图片

    支付宝 扫描二维码打赏

     

    除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/csharp-list-arraylist/

    交通人博客是交通人工作室(JTR Studio)建立的交通人系列网站之一,是交通人工作室的主阵地,旨在整合和分享交通行业相关资讯,具体包括但不限于行业新闻、行业动态,以及行业相关规范、书籍、报告和软件等资源。

    发表评论

    表情 格式

    *

    暂无评论

    
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享