写入哈希表后,数据的序列马上就变了,但好像还是固定的,请教如何使哈希表中的数据始终保持写入时的顺序呢???

解决方案 »

  1.   

    例如,我想输入
    张三 100
    李四 39
    王五 200
    ……然后我把key一行一行存入一个txt文本,但是value不动它
    以后我再根据value把那个文本文件中的key写进去的时候,因为value顺序乱了,就搞不成不知道有什么办法让哈希表按写入时的顺序保存呢
      

  2.   

    大概思路是继承HashTable重写个
     public class MyHashTable : Hashtable
        {
            public IList<object> m_Key = new List<object>();
            public MyHashTable()
            {
              
            }        public new void Add(object key, object value)
            {           
                base.Add(key, value);
                m_Key.Add(key);
            }        public new void Remove(object key)
            {
                 base.Remove(key);
                 m_Key.Remove(key);
            }        public new void Clear()
            {
                base.Clear();
                m_Key.Clear();
            }        public IList<object> KeyList { get { return m_Key; } }
        }使用
      MyHashTable _Table = new MyHashTable();            for (int i = 0; i != 100; i++)
                {
                    _Table.Add(i, i.ToString());
                }            _Table.Remove(0);
                for (int i = 0; i != _Table.KeyList.Count; i++)
                {
                    MessageBox.Show(_Table[_Table.KeyList[i]].ToString());
                }
      

  3.   

    做个类,此类两个属性KEY和VALUE
     class a
            {
                public string KEY { get; set; }
                public string VALUE { get; set; }        }
    用这个类的数组:a[] aa=new a[20];
    现在把行数对应数组下标就可以了
      

  4.   

    简单的话可以用两个哈希表,一个存放Key和Value,另一个按序号存放Key,这样就可以顺序取出Key从而顺序取出Value