Csharp进阶:非泛型集合


非泛型集合

为了保存数目不确定的对象,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]);

        }


你可能感兴趣的:(Csharp)