非泛型集合
为了保存数目不确定的对象,C#中提供了一系列特殊的类,这些类可以存储任意类型的对象,并且长度可变,它们统称为集合。
C#中集合可分为泛型集合和非泛型集合,二者均间接实现了 IEnumerable 接口。泛型集合位于System.Collections.Generic 命名空间,它只能存储同一种类型的对象,其中最常用的是List泛型集合和Dictionary泛型集合。非泛型集合位于System.Collections命名空间,它可以存储多种类型的对象,其中最常用的是ArrayList集合和Hashtable集合。
ArrayList 集合就像是一个杂货铺,它可以容纳不同类型的对象。例如可以将 int、string、object等类型的对象同时加入到ArrayList集合中。ArrayList集合提供了一系列方法
ArrayList list = newArrayList();
获取集合元素的数量
Console.WriteLine(list.Count);
Add方法向集合中添加数据
list.Add(2);
list.Add(3);
list.Add(4);
获取集合的容量,容量由0-4-8-12-16的方式随元素数量的增加而提高
Console.WriteLine(list.Capacity);
AddRange用来使括号中的所有元素添加到现集合的末尾
list.AddRange(list);
Contains用来判断元素X是否在集合中
bool ret = list.Contains(100);
GetRange获得一个新的集合,为样本集合下标X开始复制共Y个元素的集合。
ArrayList arraylist = list.GetRange(1, 3);
IndexOf用来判断(1)括号中元素于所在集合中的下标
int index = list.IndexOf(4);
(2)从下标处开始判断某个元素是在下标几对应的元素
int index = list.IndexOf("C#从入门到精通",1);
Insert插入方法,在下标为X的方位插入需要的元素
list.Insert(1,100);
RemoveAt用来移除下标X处的元素
list.RemoveAt(1);
Reverse用来将整个集合中的元素反转操作
list.Reverse();
Sort用来将整个集合的元素正序排序
list.Sort();
HashtableDemo
C#中提供了一个 Hashtable集合,该集合又被称为键值对集合。所谓的键就类似于字典中的目录,值就类似于字典中的具体信息,键与值是一一对应关系,通过唯一的键能找到对应的一个值。因此,Hashtable 的这种特性大大提高了查询效率。
在Hashtable这样的集合中存储的顺序是乱序的
Hashtable ht = new Hashtable();
ht.Add("北京","重度雾霾");
ht.Add("上海","梅雨");
ht.Add("郑州","霾");
Console.WriteLine(ht["北京"]);
Contains用来判断集合中是否包含特定键
bool ret = ht.Contains("石家庄");
Remove移除带有指定键的元素
ht.Remove("郑州");
voidClear ***清除集合中的所有元素***
通过foreach循环对集合键遍历输出集合的所有键与其对应的元素
foreach循环 是对集合做修改 遍历操作 禁止对foreach做删除操作
foreach (var itemin ht.Keys)
{
Console.WriteLine(item +" "+ht[item]);
}