.NET中的字典(Hashtable)
来源:互联网 发布:java代理模式怎么回事 编辑:程序博客网 时间:2024/06/14 05:30
字典是一种复杂的数据结构,它允许通过KEY值(键)来访问元素,例如:
EmployeeData类中保存员工的数据,包括:(employeeID,employeeName,employeeSalary)。
string employeeID ; //员工编号是一个字符串型,将被用来作为字典中的键(当然还可以用任意类型的对象作为键)。
EmployeeData myEmployeeData=Employees[myID]; //通过字符串型的键来访问(索引)员工的数据;
类定义代码如下:
/// <summary>
/// 员工数据类;
/// </summary>
public class EmployeeData
{
protected string name;
protected string sex;
protected string id; //作为键;
/// <summary>
/// 构造函数;
/// </summary>
/// <param name="id">EmployeeID ID</param>
/// <param name="name">字符串 姓名</param>
/// <param name="salary">字符串 性别</param>
public EmployeeData(string id, string name, string sex)
{
this.id = id;
this.name = name;
this.sex=sex;
}
/// <summary>
/// 重写基类的ToString()方法;
/// </summary>
/// <returns>以规定的格式返回结果字符串</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder(id.ToString(), 100);
sb.Append(";");
sb.Append(string.Format("{0,-20}",name));
sb.Append(" ");
sb.Append(string.Format("{0,-20}",sex));
return sb.ToString();
}
}
执行代码:
private void btnDisplayData_Click(object sender, EventArgs e)
{
//
//初始化字典,包含两个条目;
//
Hashtable employees = new Hashtable(11);
string jammesID ="J230";
EmployeeData jammesData = new EmployeeData(jammesID, "jammess","男");
string michealID ="M001";
EmployeeData michealData = new EmployeeData(michealID, "micheal", "男");
employees.Add(jammesID, jammesData);
employees.Add(michealID, michealData);
//
//根据输入的员工编号在字典中查找该员工的数据并显示到列表框中;
//
string tempID = txtInput.Text.ToUpper();
object tempObject = employees[tempID];
if (tempObject != null)
{
EmployeeData tempEmployeeData = (EmployeeData)tempObject;
lbResult.Items.Add(tempEmployeeData.ToString());
}
else
{
lbResult.Items.Add("字典中没有此员工的条目!");
}
}
构建字典的关键步骤:
1、构建KEY类和数据类,键类用来定义KEY对象,数据类用来定义字典中的数据对象,这两个类是不能混淆的;
2、导入命名空间System.Collections,新建一个hashtable对象 hashtable myHashtable=new hashtable(51) 注意在给定一个素数作为参数时能得到最好的性能,确保这个参数比你要在字典中存储的条目(对象)数大;
3、根据键和数据填充上一步新建的hashtable对象:myHashtable.add(KeyClass newKey,DataClass newData);
4、根据键值在字典中查找对应的数据:
Object tempObject =myHashtable[ tempKey ];
DataClass tempData=( DataClass ) tempObject; //强类型转换成你定义的数据类型;
对数据tempData作想要的操作;
对比数组只能使用int型的有限大小的数字来作为下标来访问元素方便得多。而且在字典中的条目(相比数组中的元素个数)是可以动态增加和删除的。
- .NET中的字典(Hashtable)
- .NET中的字典(Hashtable)续集
- c#中的Hashtable(哈希表、字典表)
- 字典(C#)之.NET中的字典
- asp.net中的多条件查询 hashtable
- 字典Hashtable的妙用
- .net中的Dictionary字典类的使用方法
- Net中的集合ArrayList,Hashtable,SortedList,Queue,Stack
- HashTable用法,与字典区别
- python字典的hashtable实现
- hashtable 与字典表Dictionary
- Hashtable-asp.net入门(六)
- c#中的哈希表(HashTable)实例详解
- 【c#】C#中的哈希表(HashTable)详解
- Python中的字典(dict)
- Python中的字典(Dictionary)
- .NET(C#) Hashtable Dictionary
- 遍历.net Hashtable
- 日报_2012_07_07
- Aptana Studio 3下安装NodeJS调试插件
- DLL与LIB的区别和用法
- ASP.NET MVC3 入门指南之数据验证
- 并查集
- .NET中的字典(Hashtable)
- .NET中的字典(Hashtable)续集
- 2.设计包含min 函数的栈。
- zlib1.2.5 编译(VS2010, VS2008)
- POJ 1083 Moving Tables 贪心
- .Net开发中添加PPT控件制作
- 黑马程序员---IO流
- 黑马程序员---Socket和GUI的应用
- 虚拟机安装XP系统图解之一:VMware 的安装与汉化