在ArrayList集合中,可以使用索引访问元素,如果不能确切字典索引的值,访问就比较困难,HashTable 集合利用键/值来存储数据,在哈希表中,每个元素都一个键/值对,并且是一一相对的通过键就可以得到值如果存储电话号码,通常是姓名和电话号码在一起的,存储时吧姓名当做键,号码当做值通过姓名可以查到电话号码,这就是一个典型的存储方式
Count-- 哈希表中元素的个数
Keys-- 哈希表中所有键的集合
Values --哈希表中所有列的集合
Add()--像哈希表中添加一个元素,包括元素的建和值
Clear()--清除哈希表中所有的元素
Remove()--删除指定的元素
GerEnumerator() --返回IdictionaryEnumerator。可以遍历哈希表
接下来HashTable的使用方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace HashTabile使用实例___电话薄
{
public class TelNote
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string number;
public string Nunber
{
get { return number; }
set { number = value; }
}
}
public class TelNoteEdit
{
public Hashtable httels= new Hashtable();
public void Add(TelNote tel)
{
if (httels.Count == 0)
{
Hashtable ht = new Hashtable();
httels.Add(tel.Name, tel);
}
else
{
if (httels.Contains(tel.Nunber))
{
httels[tel.Name] = tel.Nunber;
}
else
{
httels.Add(tel.Name, tel);
}
}
}
public TelNote GetByName(string name)
{
foreach (object tel in httels.Values)
{
TelNote mytel=(TelNote)tel;
if (name == mytel.Name)
{
return mytel;
}
}
return null;
}
}
class Program
{
static void Main(string[] args)
{
TelNote myte11 = new TelNote();
myte11.Name = "张佳策";
myte11.Nunber = "123456789";
TelNote myte12 = new TelNote();
myte12.Name = "张俊峰";
myte12.Nunber = "123456789";
TelNoteEdit qwer = new TelNoteEdit();
qwer.Add(myte11);
qwer.Add(myte12);
Console.WriteLine("哈希表中元素的个数为{0}",qwer.httels.Count);
foreach (DictionaryEntry myte13 in qwer.httels)
{
Console.WriteLine("\t{0}\t{1}",myte13.Key,myte13.Value);