Unity开发之C#基础-列表(List)

前言

上一章 我们讲解到了集合(ArrayList)的概念和用法 本篇呢 我们将要讲解的是与集合相似的一个新的语法 叫列表 我们一起看看列表 究竟与集合有什么不同之处呢?
制作不易还请各位一键三连哦!

列表定义

List定义在using System.Collections.Generic命名空间下,使用时需要对该命名空间进行引用。

List<T> 列表名  = new List<T>();  //其中T代表着列表中的元素类型

我们突然发现 好像这个所谓的列表 和 我们上一章所学习到的集合 没什么区别啊 只是关键字不相同罢了 那具体一点到底有什么区别呢 我们往下来看。

构造函数

List<T>() //初始化List<T>类的新实例,该实例为空并且具有默认初始容量。

List<T>(IEnumerable<T>) //初始化List<T>()类的新实例,该类型包含从指定集合复制的元素

List<T>(Int32) //初始化List<T>类的新实例,该实例为空且具有指定的初始容量。

属性

Count //获取List<T>中包含的元素数量。

常用方法

  1. 添加元素
    在这里插入图片描述
    2. 插入元素
    在这里插入图片描述
    3. 移除元素
    在这里插入图片描述
    4. 元素排序
    在这里插入图片描述
    5. 包含
    在这里插入图片描述
    这些 就是列表基本的一些常用的方法 可是我们学会了这么多 那么还是没搞懂究竟他与集合有什么区别 下面请看一图总结:

集合与列表的区别

在这里插入图片描述
它们之间的对比其实就在于“泛型”这个概念上:

对比

通过使用泛型,我们可以极大地提高代码的重用度,避免了隐式的装箱、拆箱,在一定程度上提升了应用程序的性能。通过创建泛型类,可以创建一个在编译时类型安全的集合

拆箱装箱

与我们之前讲解泛型时 所说的一样 这样可以避免很多的“装箱”“拆箱”的操作

ArrayList list=new ArrayList();
list.Add(20); 装箱,list存放的是object类型元素,须将值类型转化为引用类型。
int i=(int)list[0]; 拆箱,list[0]的类型是object,要赋值就得把引用类型转化为值类型。
如果换成泛型编程,就不会有装箱和拆箱的性能损失
List<int> list=new List<int>();
list.Add(20); 因为指定了用int来实例化,因此不必装箱。
int i=list[0]; 同样地,访问时也不需要拆箱

类型安全

ArrayList list = new ArrayList();
list.Add(3);
list.Add("It is raining in Redmond.");
foreach(int i in list)
{
	Debug.Log (i); 异常,因为并不是集合中的所有元素都可以转化为int}

如果改用泛型编程,则可以避免这种异常,让编译器检查出错误

List<int> list=new List<int>();
list.Add(20);
list.Add(string); 编译时报错,只能将整数类型添加到集合中

总结

其实归根结底 还是将泛型引用到了别的地方 来方便我们更快捷的进行操作 所以大家应该更要清楚泛型的重要性和实用性 避免很多资源的浪费。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想吃烤地瓜.

高抬小手一点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值