不排序的HashTable

HashTable中的排序实在让人头疼,取出来的顺序怎么都跟放进去的顺序不一样,为了解决这个问题,将HashTable和ArrayList结合起来就可以搞定。
using System;
using System.Collections;

namespace NoSortHashtable
{
    
/**//// <summary>
    
/// Summary description for NoSortedHashtable.
    
/// </summary>

    public class NoSortHashtable : Hashtable
    
{
        
private ArrayList keys = new ArrayList();

        
public NoSortHashtable()
        
{
        }

        

        
public override void Add(object key, object value)
        
{
            
base.Add (key, value);
            keys.Add (key);
        }


        
public override ICollection Keys
        
{
            
get
            
{
                
return keys;
            }

        }


        
public override void Clear()
        
{
            
base.Clear ();
            keys.Clear ();
        }


        
public override void Remove(object key)
        
{
            
base.Remove (key);
            keys.Remove    (key);
        }

        
public override IDictionaryEnumerator GetEnumerator()
        
{
            
return base.GetEnumerator ();
        }


    }

}

调用时代码
            hashTable = new NoSortHashtable();

            
foreach(string key in hashTable.Keys)
            
{
                Console.WriteLine(key 
+ " : " + hashTable[key]);
            }
posted @ 2007-08-21 15:18  wangyan  阅读(547)  评论(0编辑  收藏  举报