none
哈希表 RRS feed

答案

  • public void Test()
    {
      Hashtable hash = new Hashtable();
      hash.Add(1, "one");
      hash.Add(2, "two");
      hash.Add(3, "three");
      hash.Add(4, "four");
    
      //序列化
      BinaryFormatter serializer = new BinaryFormatter();
      FileStream write_stream = new FileStream("my_hash.bin", FileMode.OpenOrCreate, FileAccess.Write);
      serializer.Serialize(write_stream, hash);
      write_stream.Close();
    
      //反序列化
      FileStream reade_stream = new FileStream("my_hash.bin", FileMode.Open, FileAccess.Read);
      BinaryFormatter deserializer = new BinaryFormatter();
      Hashtable newHash = (Hashtable)deserializer.Deserialize(reade_stream);
      reade_stream.Close();
    
      foreach (var key in newHash.Keys)
      {
        Console.WriteLine("Key:" + key.ToString() + "\tValue:" + newHash[key].ToString());
      }
    }
    


    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    • 已标记为答案 Cookie Luo 2011年4月21日 3:54
    2011年4月14日 2:43
    版主
  •     static void Main(string[] args)
        {
    
          Hashtable hash = new Hashtable();
          hash.Add(1, "hello");
          hash.Add(2, "World");
          FileStream stram = new FileStream(@"D:\\1.txt",FileMode.OpenOrCreate ,FileAccess.ReadWrite );
          BinaryWriter binary = new BinaryWriter(stram );
    
          foreach (DictionaryEntry item in hash )
          {
            Console.WriteLine(item.Value);
            binary.Write(item.Value.ToString()); 
          } 
        }
    
    不知道这样对不对呢
    • 已标记为答案 Cookie Luo 2011年4月21日 3:54
    2011年4月14日 3:03

全部回复

  • public void Test()
    {
      Hashtable hash = new Hashtable();
      hash.Add(1, "one");
      hash.Add(2, "two");
      hash.Add(3, "three");
      hash.Add(4, "four");
    
      //序列化
      BinaryFormatter serializer = new BinaryFormatter();
      FileStream write_stream = new FileStream("my_hash.bin", FileMode.OpenOrCreate, FileAccess.Write);
      serializer.Serialize(write_stream, hash);
      write_stream.Close();
    
      //反序列化
      FileStream reade_stream = new FileStream("my_hash.bin", FileMode.Open, FileAccess.Read);
      BinaryFormatter deserializer = new BinaryFormatter();
      Hashtable newHash = (Hashtable)deserializer.Deserialize(reade_stream);
      reade_stream.Close();
    
      foreach (var key in newHash.Keys)
      {
        Console.WriteLine("Key:" + key.ToString() + "\tValue:" + newHash[key].ToString());
      }
    }
    


    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    • 已标记为答案 Cookie Luo 2011年4月21日 3:54
    2011年4月14日 2:43
    版主
  •     static void Main(string[] args)
        {
    
          Hashtable hash = new Hashtable();
          hash.Add(1, "hello");
          hash.Add(2, "World");
          FileStream stram = new FileStream(@"D:\\1.txt",FileMode.OpenOrCreate ,FileAccess.ReadWrite );
          BinaryWriter binary = new BinaryWriter(stram );
    
          foreach (DictionaryEntry item in hash )
          {
            Console.WriteLine(item.Value);
            binary.Write(item.Value.ToString()); 
          } 
        }
    
    不知道这样对不对呢
    • 已标记为答案 Cookie Luo 2011年4月21日 3:54
    2011年4月14日 3:03
  • 如何把哈希表遍历的结果写入文本中
    void Main()
    {
    	 Hashtable hash = new Hashtable();
    	 hash.Add(1, "hello");
    	 hash.Add(2, "World");
    	 using(BinaryWriter binary = new BinaryWriter(File.Open(@"C:\\1.txt",FileMode.OpenOrCreate)))
    	 {
    	 hash.Cast<DictionaryEntry>().ToList().ForEach(item=>binary.Write(item.Value.ToString()));
    	 }
    	 
    }
    

    Best Regards,
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    2011年4月14日 3:26
  •       Hashtable hash = new Hashtable();
          hash.Add(1, "one");
          hash.Add(2, "two");
          hash.Add(3, "three");
    
          for (int i = 0; i < hash.Count; i++)
          {
            File.AppendAllText("D:/1.txt", hash[i + 1].ToString(), Encoding.UTF8);
          }
    
    这样简短点
    2011年4月14日 4:09
  • 这个问题已经解决了,我能在问一个问题么 

    怎么把哈希表的值按由大到小顺序排序,并得到最大值所对应的键呢?

    我刚学c#一个月,真的是很茫然

    请赐教,谢谢啦!!!!


    2011年4月14日 11:34
  • 假设你的key是Int, value是string类型

     int max = -1;
                string result;
                foreach ( DictionaryEntry de in hash )
                {
                    if (Convert.ToInt32(de.Key) > max)
                    {
                        result = de.Value.ToString();
                    }
                }

     

     

    2011年4月14日 14:37
  • 您好

    假如您是使用 .NET Framrowrk 4.0,可以改用 SortedSet,參考 .Net 4.0 New Feature - SortedSet

    用法跟 HashSet 類似,多了排序以及取最大最小值


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年4月14日 15:30
  • 这个问题已经解决了,我能在问一个问题么 

    怎么把哈希表的值按由大到小顺序排序,并得到最大值所对应的键呢?

    我刚学c#一个月,真的是很茫然

    请赐教,谢谢啦!!!!


    void Main()
    {
    Hashtable hash = new Hashtable();
     hash.Add(3, "!");
    hash.Add(1, "hello");
    hash.Add(2, "World");
    var oder=hash.Cast<DictionaryEntry>().OrderByDescending(h=>h.Key);
    var max=oder.FirstOrDefault().Key;
    }

    Best Regards,
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    2011年4月15日 0:01