按Hashtable中的值得大小就行排序 .
原理同上:实际上是按照每一个字符的ASCII的值就行排序的。从左到右比较每个字符的Ascii的值,直到满足两个字符的ASCII的值不同即停止比较。
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Collections;
-
- namespace HashtableSort
- {
- class Program
- {
- static void Main(string[] args)
- {
- Hashtable ht = new Hashtable();
- ht.Add("aa", 88);
- ht.Add("bb", 33);
- ht.Add("cc", 33);
- ht.Add("dd", 22);
- ht.Add("ee", 11);
- ht.Add("ff", 99);
- ArrayList list = new ArrayList(ht.Values);
-
- /* 转换成整数的排序 */
- for (int i = 0; i list.Count; i++)
- list[i] = Convert.ToInt32(list[i]);
-
- // Sort为升序排序
- list.Sort();
- // 将顺序反转
- list.Reverse();
-
- Hashtable tmpHT = new Hashtable();
- foreach (int value in list)
- {
- IDictionaryEnumerator ide = ht.GetEnumerator();
- while (ide.MoveNext())
- {
- if (Convert.ToInt32(ide.Value) == value && !tmpHT.ContainsKey(ide.Key))
- {
- Console.WriteLine(ide.Key + ":"+value);
- tmpHT.Add(ide.Key, ide.Value);
- }
- }
- }
- Console.ReadLine();
- }
- }
- }
参考文献: