对于初学者学习HashTable 不该忽视的一点

    通常我们学习如何使用HashTable的时候我们经常会看到这样一段代码
using system; 
using system.collections; //使用hashtable时,必须引入这个命名空间 
class hashtable 
{
    
public static void main()
    
{
        hashtable ht 
= new hashtable(); //创建一个hashtable实例 
        ht.add("e""e");//添加key/value键值对 
        ht.add("a""a");
        ht.add(
"c""c");
        ht.add(
"b""b");
        
string s = (string)ht["a"];
        
if (ht.contains("e")) //判断哈希表是否包含特定键,其返回值为true或false 
            console.writeline("the e key:exist");
        ht.remove(
"c");//移除一个key/value键值对 
        console.writeline(ht["a"]);//此处输出a 
        ht.clear();//移除所有元素 
        console.writeline(ht["a"]); //此处将不会有任何输出 
    }
 
}
 

     但是我们察看MSDN 可以看到 hashtable的Add方法的参数是object,所以无论是Key,还是Value 都可以使用自定义的类(class)或(struct) 实体,将object 装入 hashtable ,这样使用起来就更方便了。可以参考如下代码

using system; 
using system.collections; //使用hashtable时,必须引入这个命名空间 
class hashtable 
{
    
public static void main()
    
{
        Hashtable ht 
= new Hashtable();
        ht.Add(
"1"new singer(1"周杰""male"));
        ht.Add(
"2"new singer(2"蔡依""female"));
        singer s 
=(singer)ht["1"];
        Console.WriteLine(s.Name);
    }
 
}
 

public class singer
{
    
public singer(int ID, string Name, string Type)   //构造函数
    
{
        _id
=ID;
        _name
=Name;
        _type
=Type;
    }


    
private int _id;
    
private string _name;
    
private string _type;

    
public int ID
    
{
        
get return _id; }
        
set { _id = value; }
    }

    
public string Name
    
{
        
get return _name; }
        
set { _name = value; }
    }

    
public string Type
    
{
        
get return _type; }
        
set { _type = value; }
    }

}

    这个虽然简单,但对于一些初学者在学习C#中还是很有帮助的。

posted on 2008-04-07 16:13  eoiioe  阅读(677)  评论(4编辑  收藏  举报

导航