1.Dictionary集合中存储的元素是有序的,集合中的元素是按顺序输出的,这和HashTable是不同的;
2.Dictionary中存储的是强类型的,对所保存的元素做类型约束。
以下示例演示如何遍历Dictionary中的元素,共分三种情况:
(1).遍历Dictionary中的Keys;
(2).遍历Dictionary中的Values;
(3).遍历Dictionary中的Keys/Values。
public class AddressDemo
{
/// <summary>
/// 构造函数的重载
/// </summary>
public AddressDemo() : this("张三", "地址不详") { }
public AddressDemo(string name) : this(name, "地址不详") { }
public AddressDemo(string name, string address)
{
this.Name = name;
this.Address = address;
}
//姓名
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
//地址
private string address;
public string Address
{
get { return address; }
set { address = value; }
}
//显示地址的方法
public void DisplayAddress()
{
string message = string.Format(@"{0} 同学的家庭住址在 {1}",this.Name,this.Address);
Console.WriteLine(message);
Console.WriteLine();
}
}
class Program
{
static void Main(string[] args)
{
Dictionary<string, AddressDemo> address = new Dictionary<string, AddressDemo>();
AddressDemo zhangSan = new AddressDemo("张三", "深圳市龙华新区");
AddressDemo liSi = new AddressDemo("李四", "深圳市福田区");
//往集合中添加对象
address.Add(zhangSan.Name, zhangSan);
address.Add(liSi.Name, liSi);
//获取集合中的元素
AddressDemo addLiSi = address["李四"];
addLiSi.DisplayAddress();
//(1)遍历集合中的Keys
Console.WriteLine("集合中的Key:");
foreach (string ad in address.Keys)
{
Console.WriteLine(ad);
}
Console.WriteLine();
//(2)遍历集合中的Values
Console.WriteLine("集合中的Value:");
foreach (AddressDemo ad in address.Values)
{
Console.WriteLine(ad.Name + "\t" + ad.Address);
}
Console.WriteLine();
//(3)遍历集合中的Keys/Values
Console.WriteLine("集合中的Key/Value:");
foreach (KeyValuePair<string,AddressDemo> ad in address)
{
Console.Write(ad.Key + ":\t");
Console.WriteLine(ad.Value.Name + "\t" + ad.Value.Address);
}
}
}
运行结果如下:

浙公网安备 33010602011771号