C#泛型集合

C#的泛型集合有List<T> , Dictionary<键的类型 , 值的类型>


什么是集合?

集合的概念就像是数学中集合的概念,是能够存储多个数据的数据结构,C#中的集合有四个 1、ArrayList ; 2、Hashtable ; 3、List<T> ; 4、Dictionary<键的类型 , 值的类型>; 我们在实际开发中使用到的一般都是后两个的泛型集合.


集合与泛型集合有什么相同之处?

1、ArrayList与List<T>都能够存放多个数据,它们能够根据所需要存储的数据来开辟存储空间,因此不比担心越界问题;

2、Hashtable 与 Dictionary<键的类型 , 值的类型>两个都是键值对集合,都是需要根据键去访问值,存储在里面的元素都是成对出现的,键是唯一的而值可以不唯一;


集合与泛型集合有什么区别?

1、集合ArratList 与 List<T>都使能够存储多个数据但是ArrayList是能够存放多种数据类型的数据而List<T>只能存储泛型T规定的数据类型;

2、同理Hashtable 与 Dictionary<键的类型 , 值的类型>的区别也是一样,后者需要规定存储数据的类型才能够进行存储;


那为什么实际开发中更加倾向使用泛型集合?

因为使用集合会经过需要进行类型转换,而类型转换就涉及到一个装箱和拆箱的过程,一旦发生装箱和拆箱的操作就一定会耗费更多的时间(因此尽量不要发生);

装箱: 就是将值类型转换为引用类型,简单理解: 将值装到箱子里面,返回那个箱子,想找到值就必须找到箱子;

拆箱: 就是将引用类型转换为值类型,简单理解: 将装值的箱子拿走,返回那个值;

(注意: 装箱时使用什么类型,拆箱时也要使用那个类型,不然就会抛异常;)

而泛型集合已经规定好存储的数据类型,所以不必担心会发生装箱和拆箱的操作,因此更加偏向使用泛型集合;


那么要怎么判断是否发生装箱和拆箱呢?

就是观察发生类型转换的两种类型是否存在着继承关系,有继承则有可能发生,无继承则不会发生;

eg: int n = 5; object b = n; //装箱 int a = (int) b; //拆箱 (int类型继承于object类型)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值