cuclife.com > IT > C# > 0

让hashtable有序并排序的三种方法

网络整理 - 06-27

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]); }