C#泛型-泛型集合Dictionary
来源:互联网 发布:php属于编程语言 编辑:程序博客网 时间:2024/06/08 06:34
在System.Collections.Generic命名空间中,与ArrayList相对应的泛型集合是List<T>,与HashTable相对应的泛型集合是Dictionary<K,V>,其存储数据的方式与哈希表相似,通过键/值来保存元素,并具有泛型的全部特征,编译时检查类型约束,读取时无须类型转换。
电话本存储的例子中,使用Dictionary<K,V>来存储电话本信息,代码如下:
Dictionary<string,TelNote> ht=newDictionary<string,TelNote>();
在Dictionary<K,V>声明中,“<string,TelNote>”中的string表示集合中Key的类型,TelNote表示Value的类型,定义Dictionary<K,V>泛型集合中的方法如下:
Dictionary<K,V> students=newDictionary<K,V>();
其中“K”为占位符,具体定义时用存储键“Key”的数据类型代替,“V”也是占位符,用元素的值“Value”的数据类型代替,这样就在定义该集合时,声明了存储元素的键和值的数据类型,保证了类型的安全性。
Dictionary<K,V>中元素的操作方法与HashTable相似,添加元素,获取元素,删除元素,遍历集合元素的方法基本相同。
Dictionary<K,V>和HashTable的区别
Dictionary<K,V>和HashTable的相同点:添加元素,删除元素,通过键访问值的方法相同。
Dictionary<K,V>和HashTable的不同点:
Dictionary<K,V>对添加的元素具有类型约束,HashTable可添加任意类型的元素。
Dictionary<K,V>不需要装箱、拆箱操作,HashTable添加时装箱,读取时拆箱。
在Dictionary<K,V>集合中,除了通过键获取值的方法外,还有一种TryGetValue(key)方法,可以通过键获取值,该方法返回值为布尔型,如果存在和键相对应的值,则返回true,否则返回false。避免了因获取不到相应值发生的异常。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
}
}
代码创建了一个Dictionary<K,V>集合,键和值的数据类型是string类型,后边代码的元素添加,删除都和哈希表处理方法相同,遍历元素时不需要进行数据类型强制转换。Dictionary<K,V>通过键取值的TryGetValue方法,此方法包括两个参数,一个是要查询的键,另一个是获取的值,注意值前面使用out关键字。
注意:使用TryGetValue方法时,参数一定要使用out关键字,否则编译失败。
- C#泛型-泛型集合Dictionary
- C#泛型-泛型集合Dictionary
- c# 泛型集合Dictionary
- c# 泛型集合Dictionary
- c# 泛型集合Dictionary
- c# 泛型集合Dictionary
- c# 泛型集合Dictionary
- C#泛型集合Dictionary
- C#集合类:Dictionary泛型集合
- C# 集合类:Dictionary 泛型集合
- C#泛型Dictionary集合
- 【转】C#泛型-泛型字典集合Dictionary<K,V>
- c# 泛型集合Dictionary<TKey,TValue>
- C# Dictionary 泛型字典集合
- C# 集合类(六):Dictionary 泛型集合
- C# 集合类(六):Dictionary 泛型集合
- C# 集合类(六):Dictionary 泛型集合
- C# 集合类(六):Dictionary 泛型集合
- ORACLE SQL性能优化系列 9
- ASP.NET ViewState详解
- Adobe photoshop cs5,dreamweaver …
- 1417: 为了未来的计算机
- Adobe Dreamweaver CS5安装jQuery…
- C#泛型-泛型集合Dictionary
- C#中Dictionary的用法
- asp.net中dropdownlist中绑定数据…
- DropdownList控件动态绑定数据源两…
- c#中分割字符串的几种方法
- 判断字符串是否含有指定子字符串 -…
- adobe dreamweaver cs5序列号不对,…
- Office OneNote 2007 是一个数字笔记本
- js事件列表