按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();
-
}
-
}
-
}
参考文献:
http://blog.sina.com.cn/s/blog_5f120d690100odit.html
阅读(2644) | 评论(0) | 转发(0) |