C#进阶3_集合

1、里式转换
1)、子类可以赋值给父类。
2)、如果父类中装的是子类的对象,那么可以将这个父类强转为子类的对象
3)、子类对象可以调用父类中的成员,但是父类只能调用自己的成员。
用is或as来使用
如:父类为Person类 子类为Student类
Person p= new Student();
p is Student 返回一个bool类型,如果转化成功则返回true,反之则为false
p as Student 表示将p转成Student,返回一个Student类

2、protected访问修饰符:受保护的,可以在当前类的内部以及该类的子类中访问。

3、我们将一个对象输出到控制台,默认情况下,打印的就是这个对象所在的类的命名空间。

4、集合与数组:
集合:很多数据的一个集合。
数组:长度不可变,类型单一。
集合的好处:长度可以任意改变、类型随便。

5、ArrayList集合:
1)、添加单个元素:Add();
2)、添加集合元素:AddRange();
3)、移除集合中的所有元素:Clear();
4)、移除单个特定元素:Remove();写谁删谁。
5)、移除索引的特定元素:RemoveAt();根据索引去删除。
6)、根据索引移除一定范围的元素:RemoveRange(开始的索引,删除数量);
7)、升序排列:Sort();需要类型差不多
8)、反转:Reverse();
9)、在指定的索引处插入单个值:Insert(插入处的索引,插入的值);
10)、在指定的索引处插入一个集合:InsertRange(插入处的索引,插入的值);
11)、判断是否包含某个指定的元素:contains();返回bool

6、Hastable:键值对集合(字典)
在键值对集合中,是根据键去找值的。键不能重复必须是为唯一的,值可以。
添加值的时候有两种方法:Hashtable ht=new Hashtable();
1)、ht.Add(键,值);->添加相同的键,会抛异常,通常用ContainsKey():判断是否包含有这个键。
2)、ht[键]=值;->添加相同的键
Clear();移除集合中所有的元素。
Remove();根据键来删除。

7、Dictionary字典集合:键值对集合,键的值必须唯一
<键的数据类型,值的数据类型> dic=new Dictionary<键的数据类型,值的数据类型>();
foreach(KeyValuePair<键的数据类型,值的数据类型> kv in dic)
{
Console.WriteLine("{0}-----{1}",kv.Key,kv.Value);
}

8、List泛型集合
List<数据类型> list= new List<数据类型>;
跟ArrayList集合的方法一样。
list.ToArray()转换为数组
nums.ToList()数组转换为集合

9、foreach循环
语法:
foreach (var item in collection)
{
}

10、var关键字:根据值能够推断出来类型。
C#是一门强类型语言:在代码当中,必须对每一个变量的类型有一个明确的定义。
js是一门弱类型语言:在代码当中,不需要对每一个变量的类型有明确的定义。

11、集合的长度问题:
count:表示这个集合中实际包含的元素的个数
capcity:表示这个集合中可以包含的元素的个数
每次集合中实际包含的元素个数(count)超过了可以包含的元素的个数(capcity)的时候,集合就会向内存中申请多开辟一倍的空间,来保证集合的长度一直够用。

12、装箱、拆箱
装箱:将值类型转换为引用类型
拆箱:将引用类型转换为值类型
例:int n=10;
object m=n;//装箱
int n=(int)m;//拆箱
看这两种类型是否发生装箱或者拆箱,要看这两种类型是否存在继承关系。有存在继承关系,则有可能发生装箱或者拆箱。没有存在继承关系,则一定没有装箱或者拆箱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值