当前位置: 代码迷 >> C# >> 8、泛型集合Dictionary<K,V>
  详细解决方案

8、泛型集合Dictionary<K,V>

热度:304   发布时间:2016-05-05 03:18:18.0
小学生之深入C#

一、深入C#数据类型 

值类型传递和引用类型传递

方法的参数是值类型和引用类型

注意:值传递和引用传递判定依据是有没有ref

01.如果方法的参数类型本身就是引用类型,那么对参数值的修改会永久保存

例如:public void TP(SE se)

{

    se.Count++;//真正的修改se对象的Count值

}

02.如果方法的参数类型本身是值类型,又没有ref修饰,那么对参数值的修改,不会永久保存()

03.如果方法的参数类型本身是值类型,但是有ref修饰,那么对象参数值的修改,也会永久保存。

值类型传递 :不带ref的参数传递  

引用类型传递:带ref的参数传递

实例(经理评分)效果图如下:

关键代码如下:

二、使用集合组织相关数据

  

1、集合概念引入

 

集合:某些指定的对象集在一起就是集合

 

如下是一个Hello Kitty的集合

 

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

三、集合中元素操作(添加,遍历,删除、常见错误)

                         

3.常见属性:

Capacity:集合占用空间

Count:集合存储元素个数

4.常用方法:

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

遍历:通过foreach遍历

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

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

      Remove():删除内容

      RemoveAt():通过索引删除

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

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

5、集合初始化器

   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}

};

6、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

 

       Eg:

 

              foreach (DictionaryEntry item in table)

 

            {

 

                Console.WriteLine(item.Key + "value==" + item.Value);

 

           }

7、泛型集合List<T>

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

8、泛型集合Dictionary<K,V>

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

实例(员工签到)效果图如下:

关键代码如下:

 

知识小结项目(如图):

关键代码如下:

 

 

2楼冷漠的彩虹
写的不错 就有一点不便于理解 楼主上传的代码能不能不是图片 上传代码更好理解 上传的图片有的 代码图片看这太模糊 看不清代码
1楼微冷的雨
不错的文章,对我的学习帮助很大,希望楼主今后多发类似的文章!
Re: 冷漠的彩虹
@微冷的雨,写的不错 自习参考 楠
  相关解决方案