IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > c# >

c#hashtable无顺序|让hashtable有序并排序的三种方法

2015-01-10 14:07 来源: IT技术学习网原创 阅读:

本文给大家讲述如何让c#中的hashtable有序并排序的三种方法

首先我们要明确,hashtable是无序的,这里的无序,主要是指其输出顺序与其添加顺序无关。

比如下面的实例,foreach输出是无序的。

hashtable1.Add(timestr, contentstr); //请添加多个hashtable key value对
foreach (string key in hashtable1.Keys)
{
    textBox1.AppendText(hashtable1[key]); //foreach输出为乱序
}

下面我们来说一下时hashtable有序输出的三种方法,

hashtable本身决定了它显然是不能排序的,但是我们可以用其他的各种方法实现跟排序的hashtable一样的功能。

1.使用arraylist排序从而巧妙实现hashtable输出排序。网上提供这种方法排序文章比较多。

ArrayList akeys=new ArrayList(ht.Keys);
akeys.Sort(); //按字母顺序进行排序
 for(string skey in akeys)
 {
   Console.Write(skey + ":");
   Console.WriteLine(ht[skey]);排序后输出
 }

2.使用LinkedHashMap给hashtable排序,感觉很牛逼

public class Test {  
    public static void main(String[] args) { 
        Map<String,Integer> hashtable = new LinkedHashMap<String,Integer>(); 
        hashtable.put( "One", new Integer(1) );
        hashtable.put( "Two", new Integer(2) );
        hashtable.put( "Three", new Integer(3) );
        hashtable.put("four", new Integer(4));
        System.out.println(hashtable);
    }
}

3.使用Dictionary代替hashtable

Dictionary跟hashtable功能差不多,还能实现排序,推荐

Dictionary<string,string> dict = new Dictionary<string,string>();
dict.Add(timestr, contentstr);
foreach (string key in dict.Keys)
{
       textBox1.AppendText(dict[key]);
}

c#hashtable无顺序|让hashtable有序并排序的三种方法
转载需注明出处:IT技术学习网 http://www.itjsxx.com/csharp/hashtable_order.html

评论文章 c#hashtable无顺序|让hashtable有序并排序的三种方法
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
  • 白兰度
    2015-11-13 15:41:08发表

    谢谢!

IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图