HashTable和NameValueCollection的区别示例

HashTable和NameValueCollection的区别示例,HashTable它用得比较广,再然后是KEY的唯一性。用了之后就发现了后果很严重:数据加入哈希表的时候的顺序和迭代输出的顺序不一致,这问题可真严重了,既然哈希表不能满足要求,只能用其它的数据结构了,找了一下就NameValueCollection了,用起来来还真好,主是没有支持KEY的唯一性,不可无所谓了,反正我这个项目也不好要求其唯一性了。    


关于HashTable和NameValueCollection输出顺序对比可通过以下示例得出。
using System;
using System.Collections.Generic;
using System.Collections;
using System.Collections.Specialized;

public class MyClass
{
    public static void Main()
    {
    System.Collections.Hashtable ht = new System.Collections.Hashtable ();
    ht.Add ( "DdpMDisplaySeq".Trim ( ) , "Display Sequence".Trim ( ) );
        ht.Add ( "DdpMNameChi".Trim ( ) , "Name (Chinese)".Trim ( ) );
        ht.Add ( "DdpMNameEng".Trim ( ) , "Name (English)".Trim ( ) );       
        ht.Add ( "Comment".Trim ( ) , "Comment".Trim ( ) );
        ht.Add ( "DdpMMarketCode".Trim ( ) , "Market Code".Trim ( ) );
        foreach ( object key in ht.Keys )
        {
          Console.WriteLine( "{0} {1}    {2},{3}" , key , ht[key] , key.GetHashCode() , ht[key].GetHashCode() );
        }
        NameValueCollection myCol = new NameValueCollection();
        myCol.Add ( "DdpMDisplaySeq".Trim ( ) , "Display Sequence".Trim ( ) );
        myCol.Add ( "DdpMNameChi".Trim ( ) , "Name (Chinese)".Trim ( ) );
        myCol.Add ( "DdpMNameEng".Trim ( ) , "Name (English)".Trim ( ) );       
        myCol.Add ( "Comment".Trim ( ) , "Comment".Trim ( ) );
        myCol.Add ( "DdpMMarketCode".Trim ( ) , "Market Code".Trim ( ) );
        foreach ( string key in myCol.Keys )
        {
          Console.WriteLine( "{0}/{1}" , key , myCol[key] );
        }

        RL();
    }
   
    Helper methods#region Helper methods

    private static void WL(object text, params object[] args)
    {
        Console.WriteLine(text.ToString(), args);   
    }
   
    private static void RL()
    {
        Console.ReadLine();   
    }
   
    private static void Break()
    {
        System.Diagnostics.Debugger.Break();
    }

    #endregion
}
输出结果为:
DdpMDisplaySeq Display Sequence    -1989459343,1288318213
DdpMMarketCode Market Code    1652325269,-2031292722
DdpMNameChi Name (Chinese)    -408135670,-703205071
DdpMNameEng Name (English)    -1570541874,-1899340382
Comment Comment    -498702589,-498702589
DdpMDisplaySeq/Display Sequence
DdpMNameChi/Name (Chinese)
DdpMNameEng/Name (English)
Comment/Comment
DdpMMarketCode/Market Code

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值