c#【集合/泛型集合/哈希表/字典】
集合(ArrayList)
集合 ArrayList():把各种类型的数据集合在一起,通过下标来遍历显示。集合是一个类,因此必须在向该集合添加元素之前,声明类的实例,需using System.Collections。
ArrayList可以动态维护,数字的容量的固定的
ArrayList常用方法:
Add( ) 往集合添加数据,算成一个元素
AddRange( ) 数组里边添加元素
Insert( ) 往某个下标的位置插入一个值
Remove() 删除
Clear() 清空
arrayList.Reverse() 反转
arrayList.Sort() 排序
Contains(1) 判断这个集合中包含这个元素
arrayLlist.Count 集合中元素的个数
arrayLlist.IndexOf(1) 找某一个元素对应的索引
InsertRange(4, nums) 往某一个索引位置插入一个数组
arrayLlist.RemoveAt(1) 移除索引对应的值
arrayLlist.RemoveRange(3,5) 从指定索引处开始移除,移除多少个,如果超出索引报异常
泛型集合(List<类型名>)
专门处理某种类型
定义一个 List<>泛型集合的方法如下:
List<> 对象名 = new List<>();
在尖括号中写什么类型,这个集合就变成什么类型的集合
添加数据,插入数据,索引访问数据都是这个类型,不需要转化
哈希表(Hashtable)
哈希表以键值对的形式存值 ,key----键(不能相同),value-----值;
哈希表使用键作为寻找的方式,是一种无序的结构,无序显示;
哈希表里的数据如何遍历?不再是for循环了,用foreach循环。
#region 简体字
private const String Jian = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲";
#endregion
#region 繁体字
private const String HXW = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨咹俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆疤巴拔跋靶紦耙坝霸罢爸苩柏百摆佰败拜稗斑癍搬扳般颁板蝂扮拌伴瓣半か绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝菢报暴豹鲍爆杯碑悲卑丠辈褙赑钡倍狈备惫焙被奔苯夲笨崩绷甭”
#endregion
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
哈希表 以键值的形式存值 key----键 value------值
key不能相同
无序的
ht.Add("大琪", 528);
ht.Add("啦啦啦", "000");
//var
foreach (object str in ht.Keys)
{
Console.WriteLine("key{0},---value{1}", str, ht[str]);
}
Console.WriteLine("添加成功了");
Console.ReadKey();
字典(Dictionary<K,V>)
Dictionary<K,V>对所保存的元素做类型约束,而HashTable可以增加任何类型。 Dictionary<K,V>添加、读取值类型元素无需拆箱、装箱,而HashTable需要做拆箱、装箱处理
之间区别
集合(ArrayList):不知道存什么类型,不知道存多少个;需要导入using System.Collections命名空间。
泛集合(List< >):知道存什么类型,不知道存多少个;不需要导入命名空间。
数组(int[ ]):知道存什么类型,知道存多少个;不需要导入命名空间。
哈希表(Hashtable): 键值为Object类型,即任意类型;需要导入using System.Collections命名空间。
字典(Dictionary<>):键值为string类型,char类型;不需要导入命名空间。