C#基础9 集合
集合
普通的数组只能存同一类型的数据,不同类型的数据需要用到集合
ArrayList:
1)可以存储不同类型数据
2)存储长度可以动态增长或者缩减
3)使用ArrarList的时候要手动导入它所在的命名空间 using System.Collections
4)底层逻辑就是: 数组+增长和压缩 (即 Resize() 和Compact())
ArryList常用方法:
1)要用ArryList先创建ArryList一个对象,用到构造方法
2)查看集合元素个数,用count,将来扩容根据容量capacity来进行操作
3)增删改查复制等操作
ArryList优点和缺点
优点:
1.存储不同类型数据
2.长度动态改变
缺点:
大多数情况装入的是一个类型数据,装入其他类型数据会自动转型,不会报错,无法得知
例如设定增加object,装入其他数据自动视为object类型
1.
2.安全性无法保证
2.0更新后不再使用ArrayList集合,改为:List<T> 称为List集合
List<T>集合特点:
1.必须指定集合里面储存元素的类型
2.<T>是一种泛型的写法,集合通过泛型进行限制的
3.T位置上写数据类型,数据类型可以说值类型,引用类型
例如:
字典集合:Dictionary<TKey,TValue>
可以防止例如班级花名册,同名同姓无法统计的情况
创建.cs文件的时候,自动生成导入了字典集合所在的程序集
例如:
count方法:查看集合中元素个数
Add方法:往集合里添加元素
添加的元素类型,与自己声明的时候设定相关
代码部分:
练习
Contaiskey( )方法:如果没有出现,则将这个字符添加到集合中,同时将字符出现的次数设置为1,如果之前出现过,则不要添加到集合中,应该取出之前的次数值,并将次数加1
Substring( ,)方法:
格式:
Substring( 开始位置,截取的字符长度个数)
作用:能够拿到指定的字符
往字典集合里面添加元素的核心方法是Add()方法
重载方法
自定义泛型方法:
根据需要类型,自动填入
只表示一个类型的时候,用T就好了,有其他类型可以用其他大写字母< T , U >
添加元素:
1.限制一种类型,限制类型为只能使用值类型
对泛型类进行限制,可以限制一种或者多种类型,用关键字where,表示限制,这里含义是:(对T进行限制,限制类型为只能使用struct类型)
struct表示值类型,一种结构,和类十分相似
class 表示引用类型........
new表示无参构造方法.....
2.限制两种类型,只能使用引用类型和无参构造方法
涉及多个类型的时候:
泛类型中无法进行比较或者加减乘除的操作
需要用到比较类型,调用接口: 大写 I 开头
接口实现:点击黄色灯泡
实现前:
实现后:
实际应用时候,系统给出的提示代码删除
其中 两数相比,X大于Y,返回正数,反之返回负数,相等返回零
创建一个泛型类: 尖括号T ( < T > ) 单独添加到class集合后面,表示为泛类型
在字段上方加///注释后,测试类调用的时候有注释,方便理解代码
base表示调用父类的构造方法, :this表示调用本类其他形式的构造方法
ref修饰符可以把局部变量传递到全局变量(猜测)
测试类
泛型类百分之九十场合用在自定义集合的时候,泛型方法针对某一个类里面,某一个小的功能的时候