c# hashTable的遍历【2种方法】与排序【3种方法】

本文详细介绍了使用C#进行Hashtable的操作方法,包括添加元素、获取元素、两种不同的遍历方式及Hashtable的排序方法。通过具体实例展示了如何实现键值对的管理和排序。
        private void Form1_Load(object sender, EventArgs e)
        {
            Hashtable ht = new Hashtable();

            ht.Add("job", "a");
            ht.Add("jobmon", "20");
            
            //单个取值,方法比较特别
            string a = ht["jobmon"].ToString();
            //Console.WriteLine(a);

            //第一种方法遍历
            foreach(DictionaryEntry de in ht)
            {
                Console.WriteLine(de.Key);
                Console.WriteLine(de.Value);
            }

            Console.WriteLine("-------------------------");
            
            //第二种方法遍历
            IDictionaryEnumerator enumerator = ht.GetEnumerator();
            while (enumerator.MoveNext())
            {
                Console.WriteLine(enumerator.Key);
                Console.WriteLine(enumerator.Value);
            }

            Console.WriteLine("++++++++++++++++++++++++++");
            //hashtable的排序第一种方法,按照键的大小排序

            ArrayList al = new ArrayList(ht.Keys);

            al.Sort();
            al.Reverse(); //反向排序

            foreach (string str in al)
            {
                Console.WriteLine(str + "  " + ht[str]);
            }

            Console.WriteLine("++++++++++++++++++++++++++");
            //hashtable的排序第二种方法,按照值的大小排序

            ArrayList alv = new ArrayList(ht.Values);
            alv.Sort();
            
            foreach (string str in alv)
            {
                IDictionaryEnumerator enumerator2 = sl.GetEnumerator();

                while (enumerator2.MoveNext())
                {
                    if (str.Equals(enumerator2.Value.ToString()))
                    {

                        Console.WriteLine(enumerator2.Key + ":" + enumerator2.Value);        
                    }
                    
                }

                
            }

            Console.WriteLine("++++++++++++++++++++++++++");
            //hashtable的排序第三种方法,用SortedList代替hashtable

            SortedList sl = new SortedList();

            sl.Add("a", "a1");
            sl.Add("c", "c1");
            sl.Add("b", "b1");

            IDictionaryEnumerator enumerator1 = sl.GetEnumerator();
            while (enumerator1.MoveNext())
            {
                Console.WriteLine(enumerator1.Key);
                Console.WriteLine(enumerator1.Value);
            }

        }


转载于:https://my.oschina.net/xjchan/blog/212448

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值