C#2010 字典集合Dictionary
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#2010 字典集合Dictionary
泛型字典集合Dictionary是一种较为复杂的泛型集合,其数据结构存储方式类似字典工具书,其每一条数据都以键和对应值的方式存储,其中键的值是唯一的,而对应值是可以重复的。
在下面的代码中,就表现了一个典型的字典集合结构,如下所示。
Windows XP 2001
Windows 2003 2003
Windows Vista 2006
Windows 2008 2007
Windows 7 2009
Windows 2008 R2 2010
在上面的代码中,分别表示了微软公司Windows操作系统与其发布的年份对应关系,其中Windows操作系统的名称是唯一的,但其发行的年份可以相同,也可以不同。
泛型字典集合中的数据存储方式与之类似,也表示这样一种对应关系。
1.定义泛型字典集合
泛型字典集合是一种复合的泛型集合,相比之前介绍的两种集合,在定义泛型字典时需要同时定义两个泛型,分别确定字典键和对应值的数据类型,其方式如下所示。
Dictionary<TKey , TValue> DictionaryName = new Dictionary<TKey , TValue>();
在上面的代码中,TKey关键字表示泛型字典中键的数据类型;TValue关键字表示泛型字典中对应值的数据类型;DictionaryName关键字表示泛型字典的实例名称。
例如,定义一个整数键对应字符串值的泛型字典,其代码如下所示。
Dictionary<int, string> iSDictionary = new Dictionary<int, string>();
2.添加元素
与列表集合和队列集合类似,泛型字典集合允许开发者添加和移除各种元素,但添加和移除的方法与之前两种集合略有区别,需要使用Add()方法。
Add()方法的作用是为泛型字典添加一个新的元素,包括添加新的键和对应值等,其使用方法如下所示。
DictionaryName.Add(Key , Value);
在上面的代码中,DictionaryName关键字表示泛型字典的实例名称;Key表示新增元素的键值,Value表示新增元素的对应值。
例如,为之前定义的iSDictionary 泛型集合添加一个新的元素,代码如下。
iSDictionary.Add(101 , "Visual Studio ");
在添加元素后,可以通过中括号“[]”和键访问对应的元素。
例如,需要访问与键值101对应的字符串,其代码如下所示。
Console.WriteLine(DictionaryName[101]);
在添加和访问字典中的元素时需要主义,如添加一个已存在的键值到字典中,会发生吟唱。
因此,需要通过之后介绍的判断键和对应值的方法进行判断,然后才能添加。
3.判断键和对应值
在字典集合Dictionary中,提供了两种方法用于判断某个元素的键或值是否存在于字典中,即ContainsKey()方法和ContainsValue()方法。
●ContainsKey()方法
ContainsKey()方法的作用是根据开发者输入的值,判断以该值为键的元素是否存在于泛型字典集合中,其使用方法如下所示。
DictionaryName.ContainsKey( Key );
在上面的代码中,DictionaryName关键字表示泛型字典的实例名称;Key关键字表示要判断的键值。
ContainsKey()方法返回的是逻辑型数据,如Key属于字典元素的键,将返回逻辑值true,否则将返回逻辑值false。
例如,判断之前定义的iSDictionary字典集合中是否包含值为101的键,代码如下所示。
Console.WriteLine(iSDictionary.ContainsKey(101));//输出:True
●ContainsV alue()方法
ContainsV alue()方法的作用是判断字典集合中是否包含指定对应值的元素,其返回值同样是一个逻辑型变量,使用方法如下所示。
DictionaryName.ContainsValue(Value);
在上面的代码中,DictionaryName关键字表示被判断的字典集合实例名称;Value表示要判断的对应值。
例如,判断之前定义的iSDictionary字典集合中是否包含字符串“Visual Studio 2010”,代码如下所示。
Console.WriteLine(iSDictionary.ContainsValue("Visual Studio 2010"));//输出:False
4.移除元素
在移除泛型字典集合中的元素时,可以使用C#提供的Clear()方法和Remove()方法进行操作,如下所示。
●Clear()方法
字典集合的Clear()方法与之前几种集合的使用方法完全相同,直接在集合的实例名称后添加方法即可清除集合中的所有元素,代码如下。
DictionaryName.Clear();
在上面的代码中,DictionaryName关键字表示集合的实例名称。
该方法在清除所有元素后,会定义集合的元素数为0,且该方法没有返回值。
●Remove()方法
在已知字典集合元素的键之后,可以使用Remove()方法将该键对应的元素从字典集合中删除,其使用方法如下所示。
DictionaryName.Remove(Key);
在上面的代码中,DictionaryName关键字表示数组集合的实例名称;Key关键字表示已知且要清除的元素键值。
例如,清除之前iSDictionary集合中已添加的键为101的元素,代码如下。
iSDictionary.Remove(101);
在使用Remove()方法移除集合元素时,需要先通过ContainsKey()方法判断该键是否属于集合,只有当返回结果为逻辑真时才能进行移除操作,否则C#将会报错。
5.获取键和对应值的集合
如果字典集合中包含了若干个元素,则开发者可以使用Keys属性和Values属性获取所有元素的的键或对应值的集合,该集合的类型为列表集合类型。
例如,在之前定义的iSDictionary集合,其Keys属性就是一个整数型的列表集合,而其Values 属性则是一个字符串型的列表集合。