刚学哈希表和泛型有些东西还是很糊涂,比如HathTable是通过键来访问值的,可是泛型是通过键来访问键,值来访问值的。看下下面的案例就知道了:
//Hashtable ht = new Hashtable();
//ht.Add(62110,"张三");
//ht.Add(62111,"李四");
//ht.Add(622112,"王五");
//foreach (string str in ht.Keys)
//{
// Console.Write(str);
//}
//foreach (string str in ht.Values)
//{
// Console.Write(str);
//}
//Console.Write(i);
//Console.WriteLine("通过字典遍历得到键和值");
//foreach (DictionaryEntry de in ht)
//{
// Console.WriteLine("{0},{1}",Convert.ToInt32(de.Key),(de.Value).ToString());
//上面的遍历和下面的遍历打印的值都是一样的.如果要得到哈希表中的键的值的话,只能通过字典遍历了..
//下面是泛型的遍历方法和结果:
Dictionary<string,Pig> dic = new Dictionary<string,Pig>();
Pig p = new Pig("印度猪","黑色");
Pig p1 = new Pig("家猪","白色");
Pig p2 = new Pig("野猪","灰色");
dic.Add(p.Type,p);
dic.Add(p1.Type,p1);
dic.Add(p2.Type,p2);
Console.WriteLine("所有的猪猪类型:");
foreach (KeyValuePair<string,Pig> Kvp in dic)
{
Console.WriteLine("{0},{1}",Kvp.Key,((Pig)Kvp.Value).Color);
}
//这里的是打印出key的值
foreach (string str in dic.Keys)
{
Console.WriteLine(str);
}
//如果这里的值放的不是对象的话,打印的是Value的值了.
foreach (Pig pig in dic.Values)
{
Console.WriteLine("{0},{1}",pig.Color,pig.Type);
}
Console.ReadKey();
}
}
class Pig
{
public string Type { get; set; }
public string Color { get; set; }
public Pig(string type, string color)
{
this.Type = type;
this.Color = color;
}
}