深入.NET平台和C#编程笔记第三章

第三章 使用集合组织相关数据

1.集合概念引入

集合:某些指定的对象(SE)集中在一起就是集合

 

如下是一个Hello Kitty的集合

 

数组:可以存储相同数据类型的一堆数据的容器

 

 

 

2.集合ArrayList的使用

01.引子:

 

用ArrayList进行赋值的时候,需要使用Add()

 

但是对集合中元素的修正可以使用下标,eg.list[0]=1给新值

 

但是在集合中元素个数为0的情况下,不能用Add()方法之外的其他手段给集合中添加元素.

 

 

    数组的局限性:由于给数组中添加元素,删除元素的时候,特别麻烦,所以我想找一个替代数组的工具,来帮我们实现数组所能实现的功能。集合应运而生.

 

 使用ArrayList首先需要引入命名空间

 

 集合动态扩容原理:如果集合中元素个数为0,并没有开辟空间

 

 02.构造函数

 

   概念:给类定义一个方法,方法名和类名相同,没有返回值,连void都不能有。

 

  03.非泛型集合在使用前,一定要先导入命名空间。

 

04.命名空间

  保证在不同的命名空间下可以出现同名类。

 

weilengdeyu.Download()

 

Weiredeyxue.UPLoad()

 

 

 

3.集合中元素

1.常见属性:

 

Capacity:集合占用空间

 

Count:集合存储元素个数

 

2.常用方法:

 

添加:int Add(Object value) //添加一个对象到集合的末尾

 

遍历:通过foreach遍历

 

删除:Remove()、RemoveAt()和Clear()

 

      *:注意事项:如果删除了集合中的某一个元素,那么集合的索引会自动维护

 

      Remove():删除内容

 

      RemoveAt():通过索引删除

 

      Clear():一次性移除集合中所有的元素

 

      Contains():是否包含某个元素

 

3.常见错误:见PPT

 

写自己的组件:其实就是你在微软已有的组件上进行第二次封装。例如

 

保证在TextBox中只能输入数字。

 

比如说,现在TextBox内容你想要按照自己特定的格式打印。自己在TextBox动手脚,然后让他支持对应格式的打印。

 

  --01.ArrayList

 

     删除方法,包含,

 

   02.命名空间

 

     同名类便于区分,加快检索硬盘上某个类的速度

 

     Using System.Collections

 

     Using System.Collections.Generic; //泛型命名,默认导入

 

   03.var :隐式类型推断

 

      最后一个问题:

 

     int num=5;

 

   04.HashTable 

 

     第一个:删除

 

        没有RemoveAt()

 

     第二个:

 

       三个方案:根据key拿到value 

 

       只能拿到value

 

                DictionayEntry    

 

             Foreach( DictionayEntry item in table)

 

             {

 

                 item.Value

 

                 //命名空间.类名

 

             }     

 

     第三个:HashTable是一种无序的双列集合。

 

     第四个:ContainsKey()

 

4.集合初始化器,对象初始化器

   ArrayList engineers = new ArrayList()

 

{

 

        new SE(){Name = "周星星",Age = 26,

 

                     Gender = Gender.male,ID = "000",Popularity = 10},

 

        new SE(){Name = "王贱贱",Age = 22,

 

                     Gender = Gender.female,ID = "111",Popularity = 20},

 

        new SE(){Name = "周姐姐",Age = 30,

 

                     Gender = Gender.male,ID = "222",Popularity = 20}

 

};

 

5.HashTable

  Hashtable 通常称为哈希表

 

  根据键(Key)可以查找到相应的值 (Value)

 

 

 

 1.HashTable注意事项

 

 

      01.HashTable类型的集合只能用foreach循环遍历,因为没有索引

 

      02.HashTable集合中元素是无序的(不会按照Add的顺序来展示元素内容)

 

      03.HashTable中的key不能重复

 

      04HashTabel没有RemoveAt()

 

 2.对HashTable遍历三种方案:

     ☆:第一种方式,遍历所有的keys,通过key的值获取value

 

     ☆:第二种方式:遍历所有的value集合

 

     ☆:第三种方式,同时遍历key和value

 

         

六、泛型集合List<T>

 泛型:就是为了约束ArrayList中元素类型,而制定的一个新的集合类型,该类型只能加入同一类型的多个元素,标识符<T>,可以看成是一个占位符,泛型是将运行时错误提前到了编译时

 

6.泛型集合Dictionary<K,V>

 Dictionary<string,Person> dic=new Dictionary<string, Person>();

posted @ 2017-10-07 19:36  盼盼的胖胖  阅读(674)  评论(0编辑  收藏  举报