可以先按值排序并写入list中,再写回hashtable
List<string> htkey=new List<string>();
List<int> htval=new List<int>();
foreach(string key in ht.keys)
{
int val=(int)ht[key];
int length=htval.count;
if(length==0)
{
htkey.add(key);
htval.add(val);
continue;
}
for(int pos=0;pos<length;pos++)
{
if(htval[pos]<=val)
{
htval.insert(pos,val);
htkey.insert(pos,key);
break;
}
}
}
ht.clear();
for(int len=0;len<htval.count;len++)
{
ht.add(htkey[len],htval[len]);
}
如果集合较大,则可采用较多成熟的排序算法以提高排序效率。[程序未经测试]